// @vitest-environment jsdom import { render, screen } from "@testing-library/react"; import { describe, expect, it } from "vitest"; import { SampleResourcePage } from "../../src/sample/contract-fixture/sample-resource-page.jsx"; describe("removable sample feature page", () => { it("renders the API-to-view-model result through AsyncSurface", async () => { const facade = { listResources: async () => ({ ok: true, value: [ { resourceId: "resource-1", title: "Example", createdAtLabel: null, }, ], }), createResource: async () => ({ ok: true, value: {} }), }; render(); expect(screen.getByLabelText("불러오는 중")).toBeVisible(); expect(await screen.findByText("Example")).toBeVisible(); }); it("renders normalized terminal errors without raw DTO fields", async () => { const facade = { listResources: async () => ({ ok: false, error: { kind: "SERVER_FAILURE", code: "SERVER_FAILURE", retryable: true, operationId: "LIST_SAMPLE_RESOURCES", attemptCount: 1, userMessageKey: "error.server_failure", action: "retry", }, }), createResource: async () => ({ ok: true, value: {} }), }; render(); expect(await screen.findByRole("alert")).toHaveTextContent("error.server_failure"); }); });