UNPKG

@unito/integration-sdk

Version:

Integration SDK

41 lines (29 loc) 1.61 kB
import express from 'express'; 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: string) => deadlineSeconds } as unknown as express.Request; const response = { locals: {} } as express.Response; 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: string) => deadlineSeconds } as unknown as express.Request; const response = { locals: {} } as express.Response; extractOperationDeadline(request, response, () => {}); assert.equal(response.locals.deadline?.deadlineTimestamp, deadlineSeconds * 1000); }); it('defaults to never() when no header', () => { const request = { header: (_key: string) => undefined } as unknown as express.Request; const response = { locals: {} } as express.Response; extractOperationDeadline(request, response, () => {}); assert.ok(response.locals.deadline instanceof OperationDeadline); assert.equal(response.locals.deadline.deadlineTimestamp, Infinity); }); });