Add unit test for ProjectDialoguesPanel
This commit is contained in:
64
tests/unit/project-dialogues-panel.test.tsx
Normal file
64
tests/unit/project-dialogues-panel.test.tsx
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
import { fireEvent, render, screen } from "@testing-library/react";
|
||||||
|
import { describe, expect, it, vi } from "vitest";
|
||||||
|
|
||||||
|
import { ProjectDialoguesPanel } from "../../src/app/ProjectDialoguesPanel";
|
||||||
|
import { createProjectDialogue } from "../../src/dialogues/project-dialogues";
|
||||||
|
|
||||||
|
describe("ProjectDialoguesPanel", () => {
|
||||||
|
it("lets the user type into title, speaker, and text fields without crashing", () => {
|
||||||
|
const dialogue = createProjectDialogue({
|
||||||
|
id: "dialogue-market",
|
||||||
|
title: "Market Greeting",
|
||||||
|
lines: [
|
||||||
|
{
|
||||||
|
id: "dialogue-line-1",
|
||||||
|
speakerName: "Merchant",
|
||||||
|
text: "Fresh fruit."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
render(
|
||||||
|
<ProjectDialoguesPanel
|
||||||
|
dialogues={{
|
||||||
|
dialogues: {
|
||||||
|
[dialogue.id]: dialogue
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
selectedDialogueId={dialogue.id}
|
||||||
|
onSelectDialogue={() => {}}
|
||||||
|
onAddDialogue={() => {}}
|
||||||
|
onDeleteDialogue={() => {}}
|
||||||
|
onSetDialogueTitle={vi.fn()}
|
||||||
|
onAddDialogueLine={() => {}}
|
||||||
|
onDeleteDialogueLine={() => {}}
|
||||||
|
onSetDialogueLineSpeaker={vi.fn()}
|
||||||
|
onSetDialogueLineText={vi.fn()}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
|
||||||
|
const titleInput = screen.getByDisplayValue("Market Greeting");
|
||||||
|
const speakerInput = screen.getByDisplayValue("Merchant");
|
||||||
|
const textInput = screen.getByDisplayValue("Fresh fruit.");
|
||||||
|
|
||||||
|
fireEvent.change(titleInput, {
|
||||||
|
target: {
|
||||||
|
value: "Morning Market"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
fireEvent.change(speakerInput, {
|
||||||
|
target: {
|
||||||
|
value: "Vendor"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
fireEvent.change(textInput, {
|
||||||
|
target: {
|
||||||
|
value: "Fresh fruit and bread."
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(titleInput).toHaveValue("Morning Market");
|
||||||
|
expect(speakerInput).toHaveValue("Vendor");
|
||||||
|
expect(textInput).toHaveValue("Fresh fruit and bread.");
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user