60 lines
1.7 KiB
TypeScript
60 lines
1.7 KiB
TypeScript
import assert from 'assert/strict';
|
|
import axios from 'axios';
|
|
|
|
import createServices from './services';
|
|
import createLog from './log';
|
|
|
|
const log = createLog();
|
|
log.level('debug');
|
|
const services = createServices(log);
|
|
|
|
const api = axios.create({
|
|
baseURL: 'http://localhost:41337',
|
|
withCredentials: true
|
|
});
|
|
|
|
let server;
|
|
before(function setup() {
|
|
server = services.api.listen();
|
|
});
|
|
|
|
after(function teardown(done) {
|
|
server.close(done)
|
|
});
|
|
|
|
describe('api', function apiTests() {
|
|
describe.skip('auth', function authTests() {
|
|
it('listens', async function listenTest() {
|
|
const res = await api.get('/health');
|
|
assert.equal(res.status, 200);
|
|
});
|
|
|
|
it('register', async function register() {
|
|
const body = {
|
|
email: `test+${Date.now()}@user.com`,
|
|
password: 'woaaah theres no limit',
|
|
};
|
|
const { data } = await api.post('/auth/register', body);
|
|
assert.equal(data.email, body.email);
|
|
});
|
|
|
|
it('login', async function login() {
|
|
const body = {
|
|
email: `test+${Date.now()}@user.com`,
|
|
password: 'woaaah theres no limit',
|
|
};
|
|
await api.post('/auth/register', body);
|
|
const res = await api.post('/auth/login', body);
|
|
assert(res.headers['set-cookie']);
|
|
})
|
|
});
|
|
|
|
describe('offers', function offerTests() {
|
|
it('create offers', async function createOffersTest() {
|
|
const { data: bundles } = await api.get('/bundles');
|
|
const listingIds = bundles[0].items.map(i => i.id);
|
|
const { data } = await api.post('/offers', { listingIds, shipping: 50.0, baseShipping: 15.0 });
|
|
});
|
|
});
|
|
});
|