UNPKG

@unito/integration-sdk

Version:

Integration SDK

29 lines (28 loc) 1.47 kB
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); }); });