import { fireEvent, render, screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { describe, expect, it } from "vitest"; import { Workbench } from "../../src/components/Workbench"; describe("Workbench", () => { it("switches themes and keeps aliases resolved", async () => { const user = userEvent.setup(); render(); await user.selectOptions(screen.getByLabelText("Theme"), "dark"); expect(screen.getByText("#f4f2ff")).toBeVisible(); expect(screen.getByText(/Sets: core → dark/u)).toBeVisible(); }); it("does not replace the active document with invalid JSON", async () => { const user = userEvent.setup(); render(); const source = screen.getByLabelText("Token document JSON"); fireEvent.change(source, { target: { value: "{" } }); await user.click(screen.getByRole("button", { name: "Apply JSON" })); expect(screen.getByRole("alert")).toBeVisible(); expect(screen.getAllByText("color.brand").length).toBeGreaterThan(0); }); });