@octokit/fixtures-server
v8.1.3
Published
Fixtures server for browser & language agnositic octokit testing
Downloads
726
Readme
fixtures-server
Fixtures server for browser & language agnostic octokit testing
The Octokit Fixtures Server is proxies requests to the mocked routes provided by @octokit/fixtures.
Usage
Load a fixture. All folder names at @octokit/fixtures/scenarios/api.github.com are valid values for
scenario
.curl -XPOST -H'Content-Type: application/json' http://localhost:3000/fixtures -d '{"scenario": "get-repository"}'
The response looks something like this
{ "id": "fixturesid123", "url": "http://localhost:3000/api.github.com/fixturesid123/api.github.com/fixturesid123" }
Send a request to the returned
url
as if it was https://api.github.com.curl -H'Authorization: token 0000000000000000000000000000000000000001' -H'Accept: application/vnd.github.v3+json' http://localhost:3000/api.github.com/fixturesid123/repos/octokit-fixture-org/hello-world
After that request the fixture is "consumed". That allows for different responses for the same requests based on order.
If you want to load custom fixtures, you'll have to use @octokit/fixtures-server
as standalone server
or as as express middleware.
Standalone Server
Download binary for your os from the latest release.
Alternatively, you can also install @octokit/fixtures-server
as a global npm package, if you prefer that:
npm install --global @octokit/fixtures-server
By default the server runs at http://localhost:3000
octokit-fixtures-server
Options
| CLI option | ENV variable | default | description |
| -------------- | ------------ | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| --port | PORT | 3000
| Server port number |
| --fixtures-url | FIXTURES_URL | 'http://localhost:<port>'
| URL to handle fixture requests (This helps with continuous deployments) |
| --log-level | LOG_LEVEL | 'info'
| One of 'debug'
, 'info'
, 'warn'
, 'error'
, 'silent'
|
| --ttl | TTL | 60000
| Expiration time for loaded fixtures in ms |
| --fixtures | FIXTURES | 'node_modules/@octokit/fixtures/scenarios/**/normalized-fixture.json'
| glob path to load JSON fixture files recorded with nock. Make sure to wrap the value with quotes, e.g. --fixtures='./scenarios/*.json'
|
Express Middleware
const express = require("express");
const app = express();
const fixturesServer = require("@octokit/fixtures-server");
app.use(
fixturesServer({
fixtures: {
"my-scenario": require("./scenarios/my-scenario.json"),
},
}),
);
app.listen(3000);
Options
| Option | Default | Description |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| fixturesUrl
| 'http://localhost:<port>'
| URL to handle fixture requests (This helps with continuous deployments) |
| logLevel
| 'info'
| One of 'debug'
, 'info'
, 'warn'
, 'error'
, 'silent'
|
| ttl
| 60000
| Expiration time (time to live) for loaded fixtures in ms |
| fixtures
| fixtures from @octokit/fixtures/scenarios/api.github.com | Object with keys being the scenario names and values being the fixtures arrays |