@nock/openapi
is a library for mocking HTTP requests based on OpenAPI 3.x specifications. It simplifies testing by ensuring your mocks align with your API contract.
Inspired by OpenAPI-msw
- Mock HTTP requests using OpenAPI definitions.
- Validate request against the schema.
- Type safety
pnpm install @nock/openapi
import { loadOpenApiSpec } from "@nock/openapi";
import type { paths } from './fixtures/schema.ts'; // Generated wit openapi-typescript
it('should mock a response body according to OpenAPI spec', async () => {
const spec = await loadOpenApiSpec<paths>(exampleSwagger, 'https://petstore3.swagger.io')
spec.get('/store/order/123')
.reply(200, { id: 123 }, {
'Content-Type': 'application/json'
});
const response = await fetch('https://petstore3.swagger.io/store/order/123')
expect(response.status).toBe(200)
expect(await response.json()).toEqual({
id: 123,
petId: 198772,
quantity: 7,
shipDate: "2019-08-24T14:15:22Z",
status: "approved",
complete: true,
})
})
This project is licensed under the MIT License.