/
githubmirror
/
axios
Обзор
Документация
Войти
/
githubmirror
/
axios
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v1.x
tests/unit/composeSignals.test.js
56 строк
2 KB
lin-hongkuan
fix: abort composed signals immediately (#11035)
29 июн 2026, 20:36
Не верифицирован
29 июн 2026, 20:36
4106dda
Код
Авторство
О чём код?
import { describe, it } from 'vitest'; import assert from 'assert'; import composeSignals from '../../lib/helpers/composeSignals.js'; describe('helpers::composeSignals', () => { const runIfAbortController = typeof AbortController === 'function' ? it : it.skip; runIfAbortController('should abort when any of the signals abort', () => { let called; const controllerA = new AbortController(); const controllerB = new AbortController(); const signal = composeSignals([controllerA.signal, controllerB.signal]); signal.addEventListener('abort', () => { called = true; }); controllerA.abort(new Error('test')); assert.ok(called); }); runIfAbortController('should abort immediately when a signal is already aborted', () => { const controller = new AbortController(); const reason = new Error('already aborted'); controller.abort(reason); const signal = composeSignals([controller.signal]); try { assert.strictEqual(signal.aborted, true); assert.strictEqual(signal.reason.message, reason.message); } finally { signal.unsubscribe(); } }); runIfAbortController('should abort on timeout', async () => { const signal = composeSignals([], 100); await new Promise((resolve) => { signal.addEventListener('abort', resolve); }); assert.match(String(signal.reason), /timeout of 100ms exceeded/); }); it('should return undefined if signals and timeout are not provided', () => { const signal = composeSignals([]); assert.strictEqual(signal, undefined); }); });