This is a small server to host a simple-fake-server.
POST
/fake_server_admin/calls
GET
/fake_server_admin/calls
POST
/fake_server_admin/clear
docker-compose
for the tests:
my-api:
build: .
environment:
- OTHER_API_URL=http://fake-server:2000
ports:
- '3000:3000'
fake-server:
image: soluto/simple-fake-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);
});
});
ADMIN_PORT
- Port for the admin calls (default 3000)
PORT
- Port for the fake calls (default 2000)