Files
crates/api/src/api.test.ts
T
2022-09-04 20:36:42 +10:00

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 });
});
});
});