mocks

Fake your API while you build the frontend or run tests.

Developer toolsClientBuilt onMock Service Worker

Every export of kitr/mocks, read from the published type definitions. The guide shows them in use.

kitr/mocks

Re-exports msw unchanged, plus the following.

kitrErrorResponse

function kitrErrorResponse(error: unknown): HttpResponse<import("msw").JsonBodyType>;

mockRoutes

function mockRoutes(table: RouteDescriptor[], baseUrl: string, resolvers: Record<string, Resolver | unknown>): RequestHandler[];

MSW handlers from a kitr route table (routes.toJSON()) or an OpenAPI-ish list. Unhandled routes get a 501 so a missing mock is loud, not silent.

const handlers = mockRoutes(routeTable, 'http://localhost:3000', {
  'projects.index': () => [{ id: '1', name: 'Alpha' }],
  'projects.show': ({ params }) => ({ id: params.id, name: 'Alpha' }),
})

mockValidationError

function mockValidationError(method: 'post' | 'put' | 'patch', url: string, fieldErrors: Record<string, string[]>): import("msw").HttpHandler;

A handler that throws a kitr validation error, to test form error mapping.

setupBrowserMocks

function setupBrowserMocks(handlers: RequestHandler[], options?: {
  quiet?: boolean;
}): Promise<import("msw/browser").SetupWorker>;

setupNodeMocks

function setupNodeMocks(handlers: RequestHandler[]): Promise<import("msw/node").SetupServer>;

Node (tests): const server = await setupNodeMocks(handlers); browser (dev): await setupBrowserMocks(handlers).

RouteDescriptor

interface RouteDescriptor {
  name: string;
  method: string;
  path: string;
}