Skip to content

Commit

Permalink
add tests for CategorizerEditor (#890)
Browse files Browse the repository at this point in the history
* add tests for CategorizerEditor

* changeset
  • Loading branch information
handeyeco authored Jan 3, 2024
1 parent 68d8a76 commit 6607ed0
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 1 deletion.
5 changes: 5 additions & 0 deletions .changeset/shiny-parents-destroy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@khanacademy/perseus-editor": patch
---

add tests for CategorizerEditor
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import {ApiOptions} from "@khanacademy/perseus";
import {action} from "@storybook/addon-actions";
import * as React from "react";

import CategorizerEditor from "../categorizer-editor";

type StoryArgs = Record<any, any>;

type Story = {
title: string;
};

export default {
title: "Perseus/Editor/Widgets/Categorizer Editor",
} as Story;

export const Default = (args: StoryArgs): React.ReactElement => {
return (
<CategorizerEditor
onChange={action("onChange")}
apiOptions={ApiOptions.defaults}
/>
);
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import {ApiOptions, Dependencies} from "@khanacademy/perseus";
import {render, screen} from "@testing-library/react";
import userEvent from "@testing-library/user-event";
import * as React from "react";

import "@testing-library/jest-dom";

import {testDependencies} from "../../../../../testing/test-dependencies";
import CategorizerEditor from "../categorizer-editor";

describe("categorizer-editor", () => {
beforeEach(() => {
jest.spyOn(Dependencies, "getDependencies").mockReturnValue(
testDependencies,
);
});

it("should render", async () => {
render(
<CategorizerEditor
onChange={() => undefined}
apiOptions={ApiOptions.defaults}
/>,
);

expect(
await screen.findByText("Randomize item order"),
).toBeInTheDocument();
});

it("should be possible to change randomize item order", async () => {
const onChangeMock = jest.fn();

render(
<CategorizerEditor
onChange={onChangeMock}
apiOptions={ApiOptions.defaults}
/>,
);

userEvent.click(
screen.getByRole("checkbox", {
name: "Randomize item order",
}),
);

expect(onChangeMock).toBeCalledWith(
expect.objectContaining({randomizeItems: true}),
);
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import "@testing-library/jest-dom";
import {testDependencies} from "../../../../../testing/test-dependencies";
import ExplanationEditor from "../explanation-editor";

describe("dropdown-editor", () => {
describe("explanation-editor", () => {
beforeEach(() => {
jest.spyOn(Dependencies, "getDependencies").mockReturnValue(
testDependencies,
Expand Down

0 comments on commit 6607ed0

Please sign in to comment.