2.0.1 • Published 4 years ago

simple-fake-server-server v2.0.1

Weekly downloads
1
License
MIT
Repository
-
Last release
4 years ago

simple-fake-server-server

This is a small server to host a simple-fake-server.

API

Create mocks

POST /fake_server_admin/calls

Get calls

GET /fake_server_admin/calls

Clear mocks

POST /fake_server_admin/clear

Example

docker-compose for the tests:

  my-api:
    build: .
    environment:
      - OTHER_API_URL=http://fake-server:2000
    ports:
      - '3000:3000'
  fake-server:
    image: simple-fake-server-server:latest
    ports:
      - '3001:3000' # management port for tests

Tests:

describe('test', () => {
    afterEach(() => axios.post('http://localhost:3001/fake_server_admin/clear'));

    it('test', async () => {
        const {data: {callId}} = await axios.post('http://localhost:3001/fake_server_admin/calls', {
            method: "get",
            url: 'api/v1/keys/foo',
            response: JSON.stringify("bar"),
            respondAsJson: true,
            statusCode: 200
        });

        await axios.post('http://localhost:3000/action');

        const {data: {hasBeenMade}} = await axios.get(`http://localhost:3001/fake_server_admin/calls?callId=${callId}`);

        expect(hasBeenMade).to.eq(true);
    });
});

or using our client:

import Server from 'simple-fake-server-server-client';

const server = new Server({port: 3001});

describe('test', () => {
    afterEach(() => server.clear());

    it('test', async () => {
        const callId = await server.mock({
            url: 'api/v1/keys/foo',
            response: JSON.stringify("bar"),
            respondAsJson: true
        });

        await axios.post('http://localhost:3000/action');

        const {hasBeenMade} = await server.getCall(callId);

        expect(hasBeenMade).to.eq(true);
    });
});

Env vars:

ADMIN_PORT - Port for the admin calls (default 3000)
PORT - Port for the fake calls (default 2000)