Farmbot-Web-App/frontend/devices/components/fbos_settings/__tests__/power_and_reset_test.tsx

94 lines
3.3 KiB
TypeScript
Raw Normal View History

const mockDevice = {
updateConfig: jest.fn(() => { return Promise.resolve(); }),
2018-10-23 14:17:51 -06:00
rebootFirmware: jest.fn(() => { return Promise.resolve(); }),
};
jest.mock("../../../../device", () => ({
getDevice: () => (mockDevice)
}));
import * as React from "react";
import { PowerAndReset } from "../power_and_reset";
import { mount } from "enzyme";
2018-01-27 02:29:13 -07:00
import { PowerAndResetProps } from "../interfaces";
import { bot } from "../../../../__test_support__/fake_state/bot";
2018-01-27 02:29:13 -07:00
import { panelState } from "../../../../__test_support__/control_panel_state";
2018-01-28 20:25:19 -07:00
import { fakeState } from "../../../../__test_support__/fake_state";
2018-09-24 13:34:38 -06:00
import { clickButton } from "../../../../__test_support__/helpers";
describe("<PowerAndReset/>", () => {
2018-01-27 02:29:13 -07:00
const fakeProps = (): PowerAndResetProps => {
return {
controlPanelState: panelState(),
2018-01-28 20:25:19 -07:00
dispatch: jest.fn(x => x(jest.fn(), fakeState)),
2018-01-27 02:29:13 -07:00
sourceFbosConfig: (x) => {
return { value: bot.hardware.configuration[x], consistent: true };
2018-03-07 22:08:00 -07:00
},
shouldDisplay: jest.fn(),
botOnline: true,
2018-01-27 02:29:13 -07:00
};
};
it("open", () => {
2018-01-27 02:29:13 -07:00
const p = fakeProps();
p.controlPanelState.power_and_reset = true;
const wrapper = mount(<PowerAndReset {...p} />);
["Power and Reset", "Restart", "Shutdown", "Factory Reset",
"Automatic Factory Reset", "Connection Attempt Period"]
.map(string => expect(wrapper.text().toLowerCase())
.toContain(string.toLowerCase()));
2018-09-24 13:34:38 -06:00
["Restart Firmware", "Change Ownership"]
.map(string => expect(wrapper.text().toLowerCase())
.not.toContain(string.toLowerCase()));
});
it("closed", () => {
2018-01-27 02:29:13 -07:00
const p = fakeProps();
p.controlPanelState.power_and_reset = false;
const wrapper = mount(<PowerAndReset {...p} />);
expect(wrapper.text().toLowerCase())
.toContain("Power and Reset".toLowerCase());
expect(wrapper.text().toLowerCase())
.not.toContain("Factory Reset".toLowerCase());
});
it("timer input disabled", () => {
bot.hardware.configuration.disable_factory_reset = true;
2018-01-27 02:29:13 -07:00
const p = fakeProps();
p.controlPanelState.power_and_reset = true;
const wrapper = mount(<PowerAndReset {...p} />);
expect(wrapper.find("input").last().props().disabled).toBeTruthy();
expect(wrapper.find("label").last().props().style)
.toEqual({ color: "grey" });
});
it("toggles auto reset", () => {
bot.hardware.configuration.disable_factory_reset = false;
2018-01-27 02:29:13 -07:00
const p = fakeProps();
p.controlPanelState.power_and_reset = true;
const wrapper = mount(<PowerAndReset {...p} />);
2018-09-24 13:34:38 -06:00
clickButton(wrapper, 3, "yes");
expect(mockDevice.updateConfig)
.toHaveBeenCalledWith({ disable_factory_reset: true });
});
2018-09-24 13:34:38 -06:00
it("restarts firmware", () => {
const p = fakeProps();
p.controlPanelState.power_and_reset = true;
p.shouldDisplay = () => true;
const wrapper = mount(<PowerAndReset {...p} />);
expect(wrapper.text().toLowerCase())
.toContain("Restart Firmware".toLowerCase());
clickButton(wrapper, 2, "restart");
2018-10-23 14:17:51 -06:00
expect(mockDevice.rebootFirmware).toHaveBeenCalled();
2018-09-24 13:34:38 -06:00
});
it("shows change ownership button", () => {
const p = fakeProps();
p.controlPanelState.power_and_reset = true;
p.shouldDisplay = () => true;
const wrapper = mount(<PowerAndReset {...p} />);
expect(wrapper.text().toLowerCase())
.toContain("Change Ownership".toLowerCase());
});
});