53 lines
1.4 KiB
TypeScript
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");
|
|
});
|
|
});
|