import * as React from "react"; import { mount } from "enzyme"; import { RawControls as Controls } from "../controls"; import { bot } from "../../__test_support__/fake_state/bot"; import { fakePeripheral, fakeWebcamFeed, fakeSensor, } from "../../__test_support__/fake_state/resources"; import { Dictionary } from "farmbot"; import { Props } from "../interfaces"; import { fakeTimeSettings } from "../../__test_support__/fake_time_settings"; describe("", () => { const mockConfig: Dictionary = {}; const fakeProps = (): Props => ({ dispatch: jest.fn(), bot: bot, feeds: [fakeWebcamFeed()], peripherals: [fakePeripheral()], sensors: [fakeSensor()], botToMqttStatus: "up", firmwareSettings: bot.hardware.mcu_params, shouldDisplay: () => true, getWebAppConfigVal: jest.fn((key) => (mockConfig[key])), sensorReadings: [], timeSettings: fakeTimeSettings(), env: {}, firmwareHardware: undefined, }); it("shows webcam widget", () => { mockConfig.hide_webcam_widget = false; const wrapper = mount(); const txt = wrapper.text().toLowerCase(); ["webcam", "move", "peripherals", "sensors"] .map(string => expect(txt).toContain(string)); }); it("hides webcam widget", () => { mockConfig.hide_webcam_widget = true; const wrapper = mount(); const txt = wrapper.text().toLowerCase(); ["move", "peripherals", "sensors"] .map(string => expect(txt).toContain(string)); expect(txt).not.toContain("webcam"); }); it("shows sensors widget", () => { mockConfig.hide_webcam_widget = false; mockConfig.hide_sensors = false; const wrapper = mount(); const txt = wrapper.text().toLowerCase(); ["webcam", "move", "peripherals", "sensors"] .map(string => expect(txt).toContain(string)); }); it("hides sensors widget", () => { mockConfig.hide_webcam_widget = true; mockConfig.hide_sensors = true; const wrapper = mount(); const txt = wrapper.text().toLowerCase(); ["move", "peripherals"] .map(string => expect(txt).toContain(string)); ["webcam", "sensors"] .map(string => expect(txt).not.toContain(string)); }); it("doesn't show sensor readings widget", () => { const p = fakeProps(); mockConfig.hide_sensors = true; const wrapper = mount(); const txt = wrapper.text().toLowerCase(); expect(txt).not.toContain("sensor history"); }); it("shows sensor readings widget", () => { const p = fakeProps(); mockConfig.hide_sensors = false; const wrapper = mount(); const txt = wrapper.text().toLowerCase(); expect(txt).toContain("sensor history"); }); });