import { render, screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { afterEach, describe, expect, it, vi } from "vitest"; import { Workbench } from "../../src/components/Workbench"; describe("3D workbench", () => { afterEach(() => vi.restoreAllMocks()); it("keeps inspection usable when WebGL is unavailable", async () => { vi.spyOn(HTMLCanvasElement.prototype, "getContext").mockReturnValue(null); const user = userEvent.setup(); render(); expect(screen.getByText("4", { selector: "dd" })).toBeVisible(); expect(await screen.findByText(/WebGL is unavailable/u)).toBeVisible(); await user.clear(screen.getByLabelText("Uniform scale")); await user.type(screen.getByLabelText("Uniform scale"), "2"); await user.click(screen.getByRole("button", { name: "Apply transform" })); expect(screen.getByText(/Transform baked/u)).toBeVisible(); }); });