import * as React from "react"; import { mount, shallow } from "enzyme"; import { LocationSelection, LocationDisplay } from "../location_selection"; import { LocationSelectionProps } from "../interfaces"; describe("", () => { function fakeProps(): LocationSelectionProps { return { xyzLocation: undefined, deviation: 0, setLocation: jest.fn(), setDeviation: jest.fn(), }; } it("renders", () => { const wrapper = mount(); const txt = wrapper.text().toLowerCase(); ["x", "y", "z", "deviation"] .map(string => expect(txt).toContain(string)); }); it("changes location", () => { const p = fakeProps(); p.xyzLocation = { x: 10, y: 20, z: 30 }; const wrapper = mount(); wrapper.find("input").first().simulate("submit"); expect(p.setLocation).toHaveBeenCalledWith({ x: 10, y: 20, z: 30 }); }); it("changes location: undefined", () => { const p = fakeProps(); p.xyzLocation = undefined; const wrapper = mount(); wrapper.find("input").first().simulate("submit"); expect(p.setLocation).toHaveBeenCalledWith({ x: undefined }); }); it("changes deviation", () => { const p = fakeProps(); const wrapper = shallow(); wrapper.find("BlurableInput").first().simulate("commit", { currentTarget: { value: "100" } }); expect(p.setDeviation).toHaveBeenCalledWith(100); }); }); describe("", () => { it("renders location ranges", () => { const p = { xyzLocation: { x: 10, y: 20, z: 30 }, deviation: 2 }; const wrapper = mount(); const txt = wrapper.text().toLowerCase(); ["x", "y", "z", "8–12", "18–22", "28–32"] .map(string => expect(txt).toContain(string)); }); });