mirror of
https://github.com/affaan-m/ECC.git
synced 2026-09-29 04:55:12 +02:00
42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
'use strict';
|
|
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
const { createRelay } = require('../src/app');
|
|
|
|
function listen(server) {
|
|
return new Promise((resolve, reject) => {
|
|
server.once('error', reject);
|
|
server.listen(0, '127.0.0.1', () => resolve(server.address().port));
|
|
});
|
|
}
|
|
|
|
test('accepts a delivery and reports it as pending', async () => {
|
|
const server = createRelay();
|
|
const port = await listen(server);
|
|
try {
|
|
const created = await fetch(`http://127.0.0.1:${port}/deliveries`, {
|
|
method: 'POST', headers: { 'content-type': 'application/json' },
|
|
body: JSON.stringify({ url: 'http://127.0.0.1:1/hook', payload: { a: 1 } }) });
|
|
assert.equal(created.status, 202);
|
|
const { id } = await created.json();
|
|
const status = await fetch(`http://127.0.0.1:${port}/deliveries/${id}`);
|
|
assert.equal(status.status, 200);
|
|
const record = await status.json();
|
|
assert.equal(record.status, 'pending');
|
|
assert.equal(record.attempts, 0);
|
|
} finally {
|
|
server.close();
|
|
}
|
|
});
|
|
|
|
test('unknown delivery id returns 404', async () => {
|
|
const server = createRelay();
|
|
const port = await listen(server);
|
|
try {
|
|
const response = await fetch(`http://127.0.0.1:${port}/deliveries/00000000-0000-0000-0000-000000000000`);
|
|
assert.equal(response.status, 404);
|
|
} finally {
|
|
server.close();
|
|
}
|
|
});
|