71 lines
2.4 KiB
TypeScript
71 lines
2.4 KiB
TypeScript
jest.mock("../../config_storage/actions", () => ({
|
|
getWebAppConfigValue: jest.fn(x => { x(); return jest.fn(() => true); }),
|
|
setWebAppConfigValue: jest.fn(),
|
|
}));
|
|
|
|
import * as React from "react";
|
|
import { mount, ReactWrapper } from "enzyme";
|
|
import {
|
|
RawDesignerSettings as DesignerSettings, DesignerSettingsProps,
|
|
mapStateToProps,
|
|
} from "../settings";
|
|
import { fakeState } from "../../__test_support__/fake_state";
|
|
import { BooleanSetting, NumericSetting } from "../../session_keys";
|
|
import { setWebAppConfigValue } from "../../config_storage/actions";
|
|
|
|
const getSetting =
|
|
(wrapper: ReactWrapper, position: number, containsString: string) => {
|
|
const setting = wrapper.find(".designer-setting").at(position);
|
|
expect(setting.text().toLowerCase())
|
|
.toContain(containsString.toLowerCase());
|
|
return setting;
|
|
};
|
|
|
|
describe("<DesignerSettings />", () => {
|
|
const fakeProps = (): DesignerSettingsProps => ({
|
|
dispatch: jest.fn(),
|
|
getConfigValue: jest.fn(),
|
|
});
|
|
|
|
it("renders settings", () => {
|
|
const wrapper = mount(<DesignerSettings {...fakeProps()} />);
|
|
expect(wrapper.text()).toContain("size");
|
|
const settings = wrapper.find(".designer-setting");
|
|
expect(settings.length).toEqual(7);
|
|
});
|
|
|
|
it("renders defaultOn setting", () => {
|
|
const p = fakeProps();
|
|
p.getConfigValue = () => undefined;
|
|
const wrapper = mount(<DesignerSettings {...p} />);
|
|
const confirmDeletion = getSetting(wrapper, 6, "confirm plant");
|
|
expect(confirmDeletion.find("button").text()).toEqual("on");
|
|
});
|
|
|
|
it("toggles setting", () => {
|
|
const wrapper = mount(<DesignerSettings {...fakeProps()} />);
|
|
const trailSetting = getSetting(wrapper, 1, "trail");
|
|
trailSetting.find("button").simulate("click");
|
|
expect(setWebAppConfigValue)
|
|
.toHaveBeenCalledWith(BooleanSetting.display_trail, true);
|
|
});
|
|
|
|
it("changes origin", () => {
|
|
const p = fakeProps();
|
|
p.getConfigValue = () => 2;
|
|
const wrapper = mount(<DesignerSettings {...p} />);
|
|
const originSetting = getSetting(wrapper, 5, "origin");
|
|
originSetting.find("div").last().simulate("click");
|
|
expect(setWebAppConfigValue).toHaveBeenCalledWith(
|
|
NumericSetting.bot_origin_quadrant, 4);
|
|
});
|
|
});
|
|
|
|
describe("mapStateToProps()", () => {
|
|
it("returns props", () => {
|
|
const props = mapStateToProps(fakeState());
|
|
const value = props.getConfigValue(BooleanSetting.show_plants);
|
|
expect(value).toEqual(true);
|
|
});
|
|
});
|