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(); 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(); 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(); 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(); await userEvent.click(screen.getByRole("button", { name: /cancel/i })); expect(onConfirm).not.toHaveBeenCalled(); });