mocks
Fake your API while you build the frontend or run tests.
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;
}