excalidraw/src/components/StoredScenesList.test.tsx
Christopher Chedeau e4919e2e6c
Replace i18n by a custom implementation (#638)
There are two problems with the current localization strategy:
- We download the translations on-demand, which means that it does a serial roundtrip for nothing.
- withTranslation helper actually renders the app 3 times on startup, instead of once (I haven't tried to debug it)
2020-01-31 21:06:06 +00:00

53 lines
1.3 KiB
TypeScript

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(<StoredScenesList {...currentProps} />),
props: currentProps,
};
}
describe("<StoredScenesList/>", () => {
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);
});
});
});