GithubHelp home page GithubHelp logo

isabella232 / fixtures-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from octokit/fixtures-server

0.0 0.0 0.0 741 KB

Fixtures server for browser & language agnositic octokit testing

License: MIT License

Shell 5.94% JavaScript 94.06%

fixtures-server's Introduction

fixtures-server

Fixtures server for browser & language agnositic octokit testing

Test

The Octokit Fixtures Server is proxies requests to the mocked routes provided by @octokit/fixtures.

Usage

  1. 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"
    }
  2. 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 Descriptio
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 keysbeing the scenario names and values being the fixtures arrays

License

MIT

fixtures-server's People

Contributors

chizr avatar dependabot[bot] avatar gr2m avatar greenkeeper[bot] avatar martinb3 avatar nickfloyd avatar oscard0m avatar renovate[bot] avatar wolfy1339 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.