import React from "react"; import { shallow, configure } from "enzyme"; import Adapter from "enzyme-adapter-react-16"; configure({ adapter: new Adapter() }); import { EventLog, mapStateToProps } from "../../app/src/components/EventLog"; describe("EventLog", () => { const writeTag = jest.fn(); it("renders loading div if events not defined", () => { const wrapper = shallow(); expect(wrapper.find(".loading")).toHaveLength(1); expect(wrapper.find(".loading").text()).toMatch("Loading"); }); it("should call writeTag with cmd_ResetAlarms and true on Reset button click", () => { const wrapper = shallow(); wrapper.find(".reset-button").simulate("click", null); expect(writeTag).toBeCalledWith("cmd_ResetAlarms", true); }); describe("event timeline", () => { let events, wrapper; beforeEach(() => { events = [ { tag: "test", timestamp: new Date(), eventType: "alarm"}, { tag: "tttt", timestamp: new Date(), eventType: "cmd" } ]; wrapper = shallow(); }); it("should return a Timeline Event for each event", () => { expect(wrapper.find("TimelineEvent")).toHaveLength(2); }); it("shows a calendar icon for non-alarm events", () => { expect(wrapper.find("TimelineEvent").last().html()).toMatch("calendar"); }); it("shows an exclamation triangle for alarm events", () => { expect(wrapper.find("TimelineEvent").first().html()).toMatch("exclamation-triangle"); }); }); it("should map state to props", () => { expect(mapStateToProps({ events: "events", extra: "extra" })).toEqual({ events: "events" }); }); });