87 lines
2.6 KiB
TypeScript
87 lines
2.6 KiB
TypeScript
jest.mock("../edit", () => ({
|
|
toggleAndEditEqCriteria: jest.fn(),
|
|
}));
|
|
|
|
import React from "react";
|
|
import { mount } from "enzyme";
|
|
import { toggleAndEditEqCriteria } from "..";
|
|
import { CheckboxListProps, SubCriteriaSectionProps } from "../interfaces";
|
|
import {
|
|
fakePointGroup,
|
|
} from "../../../../__test_support__/fake_state/resources";
|
|
import { CheckboxList, SubCriteriaSection } from "../subcriteria";
|
|
|
|
describe("<SubCriteriaSection />", () => {
|
|
const fakeProps = (): SubCriteriaSectionProps => ({
|
|
dispatch: Function,
|
|
group: fakePointGroup(),
|
|
disabled: false,
|
|
pointerTypes: [],
|
|
slugs: [],
|
|
});
|
|
|
|
it("doesn't return criteria", () => {
|
|
const p = fakeProps();
|
|
p.pointerTypes = [];
|
|
const wrapper = mount(<SubCriteriaSection {...p} />);
|
|
expect(wrapper.text()).toEqual("");
|
|
});
|
|
|
|
it("doesn't return incompatible criteria", () => {
|
|
const p = fakeProps();
|
|
p.pointerTypes = ["Plant", "Weed"];
|
|
const wrapper = mount(<SubCriteriaSection {...p} />);
|
|
expect(wrapper.text()).toEqual("");
|
|
});
|
|
|
|
it("returns plant criteria", () => {
|
|
const p = fakeProps();
|
|
p.pointerTypes = ["Plant"];
|
|
p.slugs = ["strawberry-guava"];
|
|
const wrapper = mount(<SubCriteriaSection {...p} />);
|
|
expect(wrapper.text().toLowerCase()).toContain("stage");
|
|
expect(wrapper.text()).toContain("Strawberry guava");
|
|
});
|
|
|
|
it("returns point criteria", () => {
|
|
const p = fakeProps();
|
|
p.pointerTypes = ["GenericPointer"];
|
|
const wrapper = mount(<SubCriteriaSection {...p} />);
|
|
expect(wrapper.text().toLowerCase()).toContain("color");
|
|
});
|
|
|
|
it("returns weed criteria", () => {
|
|
const p = fakeProps();
|
|
p.pointerTypes = ["Weed"];
|
|
const wrapper = mount(<SubCriteriaSection {...p} />);
|
|
expect(wrapper.text().toLowerCase()).toContain("source");
|
|
});
|
|
|
|
it("returns tool slot criteria", () => {
|
|
const p = fakeProps();
|
|
p.pointerTypes = ["ToolSlot"];
|
|
const wrapper = mount(<SubCriteriaSection {...p} />);
|
|
expect(wrapper.text().toLowerCase()).toContain("direction");
|
|
});
|
|
});
|
|
|
|
describe("<CheckboxList />", () => {
|
|
const fakeProps = (): CheckboxListProps<string> => ({
|
|
criteriaKey: "openfarm_slug",
|
|
list: [{ label: "label", value: "value" }],
|
|
dispatch: jest.fn(),
|
|
group: fakePointGroup(),
|
|
pointerType: "Plant",
|
|
disabled: false,
|
|
});
|
|
|
|
it("toggles criteria", () => {
|
|
const p = fakeProps();
|
|
const wrapper = mount(<CheckboxList {...p} />);
|
|
expect(wrapper.text()).toContain("label");
|
|
wrapper.find("input").first().simulate("change");
|
|
expect(toggleAndEditEqCriteria).toHaveBeenCalledWith(
|
|
p.group, "openfarm_slug", "value");
|
|
});
|
|
});
|