Skip to content

Commit

Permalink
add tests to DefinitionEditor (#891)
Browse files Browse the repository at this point in the history
* add tests to DefinitionEditor

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

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

import DefinitionEditor from "../definition-editor";

type StoryArgs = Record<any, any>;

type Story = {
title: string;
};

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

export const Default = (args: StoryArgs): React.ReactElement => {
return <DefinitionEditor onChange={action("onChange")} />;
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import {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 DefinitionEditor from "../definition-editor";

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

it("should render", async () => {
render(<DefinitionEditor onChange={() => undefined} />);

expect(
await screen.findByText("Definition style guide"),
).toBeInTheDocument();
});

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

render(<DefinitionEditor onChange={onChangeMock} />);

const input = screen.getByRole("textbox", {
name: "Word to be defined:",
});
userEvent.type(input, "a");

expect(onChangeMock).toBeCalledWith(
expect.objectContaining({togglePrompt: "a"}),
undefined,
);
});
});

0 comments on commit 4fe720d

Please sign in to comment.