Farmbot-Web-App/frontend/devices/components/fbos_settings/__tests__/firmware_hardware_status_te...

96 lines
3.2 KiB
TypeScript
Raw Normal View History

2019-04-09 20:31:25 -06:00
jest.mock("../../../actions", () => ({
flashFirmware: jest.fn(),
}));
2019-04-09 20:09:57 -06:00
import * as React from "react";
import { mount } from "enzyme";
import {
FirmwareHardwareStatusDetailsProps, FirmwareHardwareStatusDetails,
2019-04-09 20:31:25 -06:00
FirmwareHardwareStatusIconProps, FirmwareHardwareStatusIcon,
FirmwareHardwareStatusProps, FirmwareHardwareStatus,
2019-04-09 20:09:57 -06:00
} from "../firmware_hardware_status";
2019-04-09 20:31:25 -06:00
import { bot } from "../../../../__test_support__/fake_state/bot";
2019-04-11 21:17:01 -06:00
import { fakeTimeSettings } from "../../../../__test_support__/fake_time_settings";
2019-04-09 20:09:57 -06:00
describe("<FirmwareHardwareStatusDetails />", () => {
const fakeProps = (): FirmwareHardwareStatusDetailsProps => ({
2019-07-12 14:39:40 -06:00
alerts: [],
2019-04-09 20:31:25 -06:00
botOnline: true,
2019-04-11 21:17:01 -06:00
apiFirmwareValue: undefined,
2019-04-09 20:09:57 -06:00
botFirmwareValue: undefined,
mcuFirmwareValue: undefined,
2019-04-11 21:17:01 -06:00
timeSettings: fakeTimeSettings(),
2019-04-16 11:03:44 -06:00
dispatch: jest.fn(),
2019-04-09 20:09:57 -06:00
});
2019-04-11 21:17:01 -06:00
it("renders details: unknown", () => {
2019-04-09 20:09:57 -06:00
const wrapper = mount(<FirmwareHardwareStatusDetails {...fakeProps()} />);
2019-04-11 21:17:01 -06:00
expect(wrapper.text()).toContain("unknown");
});
it("renders details: arduino", () => {
const p = fakeProps();
p.apiFirmwareValue = "arduino";
const wrapper = mount(<FirmwareHardwareStatusDetails {...p} />);
2019-04-09 20:31:25 -06:00
expect(wrapper.text()).toContain("Arduino/RAMPS (Genesis v1.2)");
2019-04-09 20:09:57 -06:00
});
});
describe("<FirmwareHardwareStatusIcon />", () => {
const fakeProps = (): FirmwareHardwareStatusIconProps => ({
firmwareHardware: undefined,
2019-04-09 20:31:25 -06:00
status: false,
2019-04-09 20:09:57 -06:00
});
it("renders details: ok", () => {
const p = fakeProps();
p.firmwareHardware = "arduino";
2019-04-09 20:31:25 -06:00
p.status = true;
2019-04-09 20:09:57 -06:00
const wrapper = mount(<FirmwareHardwareStatusIcon {...p} />);
expect(wrapper.find("i").hasClass("ok")).toEqual(true);
expect(wrapper.find("i").hasClass("fa-check-circle")).toEqual(true);
});
it("renders details: inconsistent", () => {
const p = fakeProps();
p.firmwareHardware = "arduino";
2019-04-09 20:31:25 -06:00
p.status = false;
2019-04-09 20:09:57 -06:00
const wrapper = mount(<FirmwareHardwareStatusIcon {...p} />);
2019-04-11 21:17:01 -06:00
expect(wrapper.find("i").hasClass("no")).toEqual(true);
2019-04-09 20:09:57 -06:00
expect(wrapper.find("i").hasClass("fa-times-circle")).toEqual(true);
});
it("renders details: unknown", () => {
const p = fakeProps();
p.firmwareHardware = undefined;
const wrapper = mount(<FirmwareHardwareStatusIcon {...p} />);
expect(wrapper.find("i").hasClass("unknown")).toEqual(true);
expect(wrapper.find("i").hasClass("fa-question-circle")).toEqual(true);
});
});
2019-04-09 20:31:25 -06:00
describe("<FirmwareHardwareStatus />", () => {
const fakeProps = (): FirmwareHardwareStatusProps => ({
bot,
2019-07-12 14:39:40 -06:00
alerts: [],
2019-04-09 20:31:25 -06:00
botOnline: true,
apiFirmwareValue: undefined,
2019-04-11 21:17:01 -06:00
timeSettings: fakeTimeSettings(),
2019-04-16 11:03:44 -06:00
dispatch: jest.fn(),
2019-04-09 20:31:25 -06:00
});
it("renders: inconsistent", () => {
const wrapper = mount(<FirmwareHardwareStatus {...fakeProps()} />);
expect(wrapper.find(FirmwareHardwareStatusIcon).props().status).toBeFalsy();
});
it("renders: consistent", () => {
const p = fakeProps();
p.bot.hardware.informational_settings.firmware_version = "1.0.0.R";
p.bot.hardware.configuration.firmware_hardware = "arduino";
p.apiFirmwareValue = "arduino";
const wrapper = mount(<FirmwareHardwareStatus {...p} />);
expect(wrapper.find(FirmwareHardwareStatusIcon).props().status).toBeTruthy();
});
});