45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
import test from 'ava';
|
|
import 'sinon-bluebird';
|
|
import setup from '../test/integration-setup.js';
|
|
|
|
const STATUS_OK = 200;
|
|
const STATUS_NOT_FOUND = 404;
|
|
const STATUS_BAD_REQUEST = 400;
|
|
|
|
setup(test);
|
|
|
|
test('where /player {name: "Chard"}', async (t) => {
|
|
const { server, sequelize: { models: { Player } } } = t.context;
|
|
const url = '/player';
|
|
const method = 'POST';
|
|
const payload = { name: 'Chard' };
|
|
|
|
const notPresentPlayer = await Player.findOne({ where: payload });
|
|
t.falsy(notPresentPlayer);
|
|
|
|
const { result, statusCode } = await server.inject({ url, method, payload });
|
|
t.is(statusCode, STATUS_OK);
|
|
t.truthy(result.id);
|
|
t.is(result.name, payload.name);
|
|
});
|
|
|
|
test('not found /notamodel {name: "Chard"}', async (t) => {
|
|
const { server } = t.context;
|
|
const url = '/notamodel';
|
|
const method = 'POST';
|
|
const payload = { name: 'Chard' };
|
|
|
|
const { statusCode } = await server.inject({ url, method, payload });
|
|
t.is(statusCode, STATUS_NOT_FOUND);
|
|
});
|
|
|
|
|
|
test('no payload /player/1', async (t) => {
|
|
const { server } = t.context;
|
|
const url = '/player';
|
|
const method = 'POST';
|
|
|
|
const { statusCode } = await server.inject({ url, method });
|
|
t.is(statusCode, STATUS_BAD_REQUEST);
|
|
});
|