Farmbot-Web-App/frontend/sequences/step_buttons/__tests__/index_test.tsx

53 lines
1.4 KiB
TypeScript

import * as React from "react";
import { StepButtonParams } from "../../interfaces";
import { StepButton, stepClick } from "../index";
import { shallow } from "enzyme";
import { fakeSequence } from "../../../__test_support__/fake_state/resources";
import { Actions } from "../../../constants";
import { error } from "../../../toast/toast";
function props(): StepButtonParams {
return {
current: fakeSequence(),
step: {
kind: "wait",
args: {
milliseconds: 9,
},
},
dispatch: jest.fn(),
color: "blue",
index: 1,
};
}
describe("<StepButton/>", () => {
it("clicks it", () => {
const p = props();
const el = shallow(<StepButton {...p} />);
el.find("button").simulate("click");
expect(p.dispatch).toHaveBeenCalledWith({
payload: expect.objectContaining({
update: expect.objectContaining({
body: [p.step]
}),
}),
type: Actions.OVERWRITE_RESOURCE
});
expect(p.dispatch).toHaveBeenCalledWith({
type: Actions.SET_SEQUENCE_STEP_POSITION,
payload: undefined,
});
});
});
describe("stepClick", () => {
it("pops a toast notification when you must select a sequence", () => {
const p = props();
const clicker = stepClick(p.dispatch, p.step, undefined);
clicker();
expect(error).toHaveBeenCalledWith("Select a sequence first");
});
});