@unito/integration-sdk
Version:
Integration SDK
29 lines (28 loc) • 1.47 kB
JavaScript
import assert from 'node:assert/strict';
import { describe, it } from 'node:test';
import { OperationDeadline } from '../../src/resources/operationDeadline.js';
import extractOperationDeadline from '../../src/middlewares/deadline.js';
describe('signal middleware', () => {
it('uses header', () => {
const deadlineSeconds = Math.floor((Date.now() + 5000) / 1000);
const request = { header: (_key) => deadlineSeconds };
const response = { locals: {} };
extractOperationDeadline(request, response, () => { });
assert.ok(response.locals.deadline instanceof OperationDeadline);
assert.equal(response.locals.deadline.signal.aborted, false);
});
it('attaches the absolute deadline (epoch ms)', () => {
const deadlineSeconds = Math.floor((Date.now() + 5000) / 1000);
const request = { header: (_key) => deadlineSeconds };
const response = { locals: {} };
extractOperationDeadline(request, response, () => { });
assert.equal(response.locals.deadline?.deadlineTimestamp, deadlineSeconds * 1000);
});
it('defaults to never() when no header', () => {
const request = { header: (_key) => undefined };
const response = { locals: {} };
extractOperationDeadline(request, response, () => { });
assert.ok(response.locals.deadline instanceof OperationDeadline);
assert.equal(response.locals.deadline.deadlineTimestamp, Infinity);
});
});