- SessionMenu: anglicize all Italian labels (Vista divisa → Split view, etc.) - RenameDialog: add empty-name guard + change title to "Rename session" - DeleteConfirmDialog: translate title and description to English - SessionActions.test: add 2 new tests (empty name guard, cancel on DeleteConfirmDialog) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
40 lines
1.7 KiB
TypeScript
40 lines
1.7 KiB
TypeScript
import { render, screen } from "@testing-library/react";
|
|
import userEvent from "@testing-library/user-event";
|
|
import { vi } from "vitest";
|
|
import { RenameDialog } from "./RenameDialog";
|
|
import { DeleteConfirmDialog } from "./DeleteConfirmDialog";
|
|
|
|
test("RenameDialog submits the edited name", async () => {
|
|
const onSubmit = vi.fn();
|
|
render(<RenameDialog open initial="Vecchio" onOpenChange={vi.fn()} onSubmit={onSubmit} />);
|
|
const input = screen.getByDisplayValue("Vecchio");
|
|
await userEvent.clear(input);
|
|
await userEvent.type(input, "Nuovo");
|
|
await userEvent.click(screen.getByRole("button", { name: /save/i }));
|
|
expect(onSubmit).toHaveBeenCalledWith("Nuovo");
|
|
});
|
|
|
|
test("DeleteConfirmDialog confirms only on the destructive button", async () => {
|
|
const onConfirm = vi.fn();
|
|
render(<DeleteConfirmDialog open label="Sessione X" onOpenChange={vi.fn()} onConfirm={onConfirm} />);
|
|
expect(screen.getByText(/Sessione X/)).toBeInTheDocument();
|
|
await userEvent.click(screen.getByRole("button", { name: /delete/i }));
|
|
expect(onConfirm).toHaveBeenCalled();
|
|
});
|
|
|
|
test("RenameDialog does not submit an empty name", async () => {
|
|
const onSubmit = vi.fn();
|
|
render(<RenameDialog open initial="Old" onOpenChange={vi.fn()} onSubmit={onSubmit} />);
|
|
const input = screen.getByDisplayValue("Old");
|
|
await userEvent.clear(input);
|
|
await userEvent.click(screen.getByRole("button", { name: /save/i }));
|
|
expect(onSubmit).not.toHaveBeenCalled();
|
|
});
|
|
|
|
test("DeleteConfirmDialog does not confirm when Cancel is clicked", async () => {
|
|
const onConfirm = vi.fn();
|
|
render(<DeleteConfirmDialog open label="X" onOpenChange={vi.fn()} onConfirm={onConfirm} />);
|
|
await userEvent.click(screen.getByRole("button", { name: /cancel/i }));
|
|
expect(onConfirm).not.toHaveBeenCalled();
|
|
});
|