import React from "react"; import { shallow, configure } from "enzyme"; import Adapter from "enzyme-adapter-react-16"; configure({ adapter: new Adapter() }); import { Header, mapStateToProps } from "../../app/src/components/Header"; describe("Header", () => { it("should display a nav item", () => { const wrapper = shallow(
); expect(wrapper.find("nav")).toHaveLength(1); }); describe("alarm button", () => { it("does not display anything if props haven't been set", () => { const wrapper = shallow(
); expect(wrapper.find(".no-alarm")).toHaveLength(1); }); it("renders button for no alarms", () => { const wrapper = shallow(
); expect(wrapper.find(".alarm-button")).toHaveLength(1); }); it("renders button for alarms", () => { const wrapper = shallow(
); expect(wrapper.find(".alarm-button")).toHaveLength(1); }); }); describe("running state indicator", () => { const tags = { Device_Status_INT: { name: "Device_Status_INT", value: 0 } }; it("renders an empty span for no tags", () => { const wrapper = shallow(
); expect(wrapper.find(".no-tags").text()).toEqual(""); }); it("renders and empty span for tags, but no Device_Status_INT", () => { const wrapper = shallow(
); expect(wrapper.find(".no-device-status").text()).toEqual(""); }); it("renders Running for value 0", () => { const wrapper = shallow(
); expect(wrapper.find(".status-indicator").text()).toMatch("Running"); }); it("renders Pumped Off for value 1", () => { tags.Device_Status_INT.value = 1; const wrapper = shallow(
); expect(wrapper.find(".status-indicator").text()).toMatch("Pumped Off"); }); it("renders Alarmed for value 2", () => { tags.Device_Status_INT.value = 2; const wrapper = shallow(
); expect(wrapper.find(".status-indicator").text()).toMatch("Alarmed"); }); it("renders Locked Out for value 3", () => { tags.Device_Status_INT.value = 3; const wrapper = shallow(
); expect(wrapper.find(".status-indicator").text()).toMatch("Locked Out"); }); it("renders Stopped for value 4", () => { tags.Device_Status_INT.value = 4; const wrapper = shallow(
); expect(wrapper.find(".status-indicator").text()).toMatch("Stopped"); }); it("renders Unknown for value 5", () => { tags.Device_Status_INT.value = 5; const wrapper = shallow(
); expect(wrapper.find(".status-indicator").text()).toMatch("Unknown"); }); }); it("should map state to props", () => { const state = { tags: "tags", alarms: "alarms", extra: "extra"}; expect(mapStateToProps(state)).toEqual({ tags: "tags", alarms: "alarms" }); }); });