Skip to content
/ openapi Public

@nock/openapi is a library for mocking HTTP requests based on OpenAPI 3.x specifications. It ensures your mocks align with your API contract, providing type safety and schema validation for both requests and responses. Inspired by OpenAPI-msw.

Notifications You must be signed in to change notification settings

nock/openapi

Repository files navigation

@nock/openapi

@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

Features

  • Mock HTTP requests using OpenAPI definitions.
  • Validate request against the schema.
  • Type safety

Installation

pnpm install @nock/openapi

Usage

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,
  })
})

License

This project is licensed under the MIT License.

About

@nock/openapi is a library for mocking HTTP requests based on OpenAPI 3.x specifications. It ensures your mocks align with your API contract, providing type safety and schema validation for both requests and responses. Inspired by OpenAPI-msw.

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

No packages published