From e4526477393cde61fc87428260993e533142ce1e Mon Sep 17 00:00:00 2001 From: Alex Rudenko Date: Mon, 26 Jun 2023 14:01:36 +0200 Subject: [PATCH] chore: move Deferred test (#10452) --- package.json | 2 +- .../puppeteer-core/src/util/Deferred.test.ts | 42 +++++++++++++------ 2 files changed, 30 insertions(+), 14 deletions(-) rename test/src/Deferred.spec.ts => packages/puppeteer-core/src/util/Deferred.test.ts (68%) diff --git a/package.json b/package.json index 568bb8cc..ee7a7d64 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "test:firefox:headful": "wireit", "test:firefox:headless": "wireit", "test:firefox": "wireit", - "test": "cross-env PUPPETEER_DEFERRED_PROMISE_DEBUG_TIMEOUT=20000 node tools/mochaRunner/lib/main.js --min-tests 1048", + "test": "cross-env PUPPETEER_DEFERRED_PROMISE_DEBUG_TIMEOUT=20000 node tools/mochaRunner/lib/main.js --min-tests 1046", "validate-licenses": "tsx tools/third_party/validate-licenses.ts", "unit": "npm run unit --workspaces --if-present" }, diff --git a/test/src/Deferred.spec.ts b/packages/puppeteer-core/src/util/Deferred.test.ts similarity index 68% rename from test/src/Deferred.spec.ts rename to packages/puppeteer-core/src/util/Deferred.test.ts index 2c8dcb3c..e5db7e24 100644 --- a/test/src/Deferred.spec.ts +++ b/packages/puppeteer-core/src/util/Deferred.test.ts @@ -14,8 +14,12 @@ * limitations under the License. */ +import {describe, it} from 'node:test'; + import expect from 'expect'; -import {Deferred} from 'puppeteer-core/internal/util/Deferred.js'; +import sinon from 'sinon'; + +import {Deferred} from './Deferred.js'; describe('DeferredPromise', function () { it('should catch errors', async () => { @@ -45,18 +49,30 @@ 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'); + it('Deferred.race should cancel timeout', async function () { + const clock = sinon.useFakeTimers(); + + try { + const deferred = Deferred.create(); + const deferredTimeout = Deferred.create({ + message: 'Race did not stop timer', + timeout: 100, + }); + + clock.tick(50); + + await Promise.all([ + Deferred.race([deferred, deferredTimeout]), + deferred.resolve(), + ]); + + clock.tick(150); + + expect(deferredTimeout.value()).toBeInstanceOf(Error); + expect(deferredTimeout.value()?.message).toContain('Timeout cleared'); + } finally { + clock.restore(); + } }); });