import React from "react"; import Enzyme, { shallow } from "enzyme"; import Adapter from "enzyme-adapter-react-16"; import { StoredScenesList } from "./StoredScenesList"; import { PreviousScene } from "../scene/types"; Enzyme.configure({ adapter: new Adapter() }); function setup(props: any) { const currentProps = { ...props, onChange: jest.fn(), }; return { wrapper: shallow(), props: currentProps, }; } describe("", () => { const scenes: PreviousScene[] = [ { id: "123", timestamp: Date.now(), }, { id: "234", timestamp: Date.now(), }, { id: "345", timestamp: Date.now(), }, ]; const { wrapper, props } = setup({ scenes }); describe("Renders the ids correctly when", () => { it("select options and ids length are the same", () => { expect(wrapper.find("option").length).toBe(scenes.length); }); }); describe("Can handle id selection when", () => { it("onChange method is called when select option has changed", async () => { const select = wrapper.find("select") as any; const mockedEvenet = { currentTarget: { value: "1" } }; await select.invoke("onChange")(mockedEvenet); expect(props.onChange.mock.calls.length).toBe(1); }); }); });