Skip to content

Allow for the easy creation of mocking requests #41

Description

@erunion

When working with an API, it's helpful to be able to mock out requests when unit testing client functionality. Since we've got the OpenAPI definition on hand for the API in question, we know everything about the API and should be able to accept and return mock data according to the contract.

Nock, the library that we'd likely use for supporting mocks, has an environmental flag that lets you completely disable Nock.

Along these lines, the two ideas that we have for mocking API requests out of SDKs are:

  • Expose an API_MOCKS=true environmental variable that when enabled, causes the SDK to disable network traffic and mock out all requests.
  • Alternatively, if you just want to mock out a single endpoint we should have a .mock() method that you could chain to your API call as such:
const sdk = require('api')('petstore.json');
sdk.mock().listPets().then(res => {
  // `res` is a 200 response and `res.json()` contains mock data based on the API
});

Unanswered questions right now are:

  • How would we mock out failing requests? Would that entail you supplying .mock() with the status code you wish to cause .listPets() to return?

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:coreIssues related to `core`, which is the package that powers the SDKs at runtimeexplorationA tag to show off your experiments

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions