diff --git a/test/src/Deferred.spec.ts b/test/src/Deferred.spec.ts index 3299a97e540..2c8dcb3c58e 100644 --- a/test/src/Deferred.spec.ts +++ b/test/src/Deferred.spec.ts @@ -45,4 +45,18 @@ describe('DeferredPromise', function () { } expect(caught).toBeTruthy(); }); + it('Deferred.race should cancel timeout', async function () { + const deferred = Deferred.create(); + const deferredTimeout = Deferred.create({ + message: 'Race did not stop timer', + timeout: this.timeout() + 50, + }); + await Promise.all([ + Deferred.race([deferred, deferredTimeout]), + deferred.resolve(), + ]); + + expect(deferredTimeout.value()).toBeInstanceOf(Error); + expect(deferredTimeout.value()?.message).toContain('Timeout cleared'); + }); });