Skip to content

Latest commit

 

History

History
49 lines (35 loc) · 1.22 KB

File metadata and controls

49 lines (35 loc) · 1.22 KB

@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.