feat: harden test and registry evidence
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
// @vitest-environment jsdom
|
||||
|
||||
import { HttpResponse, http } from "msw";
|
||||
import { setupServer } from "msw/node";
|
||||
import { render, screen } from "@testing-library/react";
|
||||
import userEvent from "@testing-library/user-event";
|
||||
import {
|
||||
@@ -16,6 +14,9 @@ import {
|
||||
|
||||
import { createRuntimeComposition } from "../../../src/bootstrap/create-runtime-composition.js";
|
||||
import { RuntimeApplication } from "../../../src/bootstrap/runtime-application.jsx";
|
||||
import { createBootstrapHandlers } from "../../mocks/handlers/bootstrap.js";
|
||||
import { createReferenceScenarioHandlers } from "../../mocks/handlers/reference-resources.js";
|
||||
import { createStrictMockServer } from "../../mocks/server.js";
|
||||
|
||||
const runtimeConfig = {
|
||||
APP_ENV: "local",
|
||||
@@ -56,41 +57,23 @@ const releaseManifest = {
|
||||
const listRequests = vi.fn();
|
||||
const createRequests = vi.fn();
|
||||
const resources = [{ id: "reference-1", name: "Existing" }];
|
||||
const server = setupServer(
|
||||
http.get("http://app.test/config.json", () =>
|
||||
HttpResponse.json(runtimeConfig),
|
||||
),
|
||||
http.get("http://app.test/release-manifest.json", () =>
|
||||
HttpResponse.json(releaseManifest),
|
||||
),
|
||||
http.get("https://api.test/api/reference-resources", ({ request }) => {
|
||||
listRequests(new URL(request.url).search);
|
||||
return HttpResponse.json({
|
||||
success: true,
|
||||
data: resources,
|
||||
meta: { requestId: "request-list", traceId: "trace-list" },
|
||||
});
|
||||
}),
|
||||
http.post("https://api.test/api/reference-resources", async ({ request }) => {
|
||||
const body = (await request.json()) as { name: string };
|
||||
createRequests(body);
|
||||
const created = { id: "reference-created", name: body.name };
|
||||
resources.push(created);
|
||||
return HttpResponse.json({
|
||||
success: true,
|
||||
data: created,
|
||||
meta: { requestId: "request-create", traceId: "trace-create" },
|
||||
});
|
||||
const mockApi = createStrictMockServer(
|
||||
...createBootstrapHandlers(runtimeConfig, releaseManifest),
|
||||
...createReferenceScenarioHandlers({
|
||||
resources,
|
||||
onList: listRequests,
|
||||
onCreate: createRequests,
|
||||
}),
|
||||
);
|
||||
|
||||
beforeAll(() => server.listen({ onUnhandledRequest: "error" }));
|
||||
beforeAll(mockApi.listen);
|
||||
afterEach(() => {
|
||||
mockApi.reset();
|
||||
listRequests.mockClear();
|
||||
createRequests.mockClear();
|
||||
resources.splice(1);
|
||||
});
|
||||
afterAll(() => server.close());
|
||||
afterAll(mockApi.close);
|
||||
|
||||
const absoluteFetch: typeof fetch = (input, init) => {
|
||||
if (input instanceof Request) return fetch(input, init);
|
||||
|
||||
Reference in New Issue
Block a user