import * as React from "react";
import { shallow } from "enzyme";
import toJson from "enzyme-to-json";
import NetworkSwitcher from "src/components/Layout/Header/NetworkSwitcher";
import DropdownItem from "react-bootstrap/DropdownItem";
const mockHistoryPush = jest.fn();
jest.mock("react-router-dom", () => {
const orig = jest.requireActual("react-router-dom");
return {
...orig,
useHistory: () => ({
push: mockHistoryPush,
}),
};
});
jest.mock("src/services/network/networkProvider", () => {
const orig = jest.requireActual("src/services/network/networkProvider");
return {
...orig,
defaultNetworks: {
"https://api.zilliqa.com": "Mainnet",
"https://dev-api.zilliqa.com": "Testnet",
"https://zilliqa-isolated-server.zilliqa.com": "Isolated Server",
"http://52.187.126.172:4201": "Mainnet Staked Seed Node",
},
useNetworkName: () => "Mainnet",
useNetworkUrl: () => "https://api.zilliqa.com",
};
});
describe("", () => {
const mockSetNetworkMap = jest.fn();
beforeEach(() => {
jest.spyOn(React, "useContext").mockImplementation(() => ({
networkMap: new Map([
["https://api.zilliqa.com", "Mainnet"],
["https://dev-api.zilliqa.com", "Testnet"],
]),
setNetworkMap: mockSetNetworkMap,
}));
});
it("renders with a given list of default networks and switches correctly", () => {
const wrapper = shallow();
expect(wrapper).toMatchSnapshot();
wrapper
.find(DropdownItem)
.findWhere((node) => node.text() === "Testnet")
.at(0)
.simulate("click");
});
it("renders with no networks and matches snapshot", () => {
jest.spyOn(React, "useContext").mockImplementation(() => ({
networkMap: new Map(),
setNetworkMap: mockSetNetworkMap,
}));
const wrapper = shallow();
expect(toJson(wrapper)).toMatchSnapshot();
});
});