From e60874af8e0ea076a400005e1498a0afa71ace0e Mon Sep 17 00:00:00 2001 From: Connor Clark Date: Thu, 8 Aug 2024 13:57:56 -0700 Subject: [PATCH 1/2] deps: upgrade jest packages to 29.7.0 --- cli/test/cli/bin-test.js | 13 +- core/test/config/config-test.js | 13 +- .../gather/driver/execution-context-test.js | 5 +- .../test/gather/driver/target-manager-test.js | 2 +- core/test/gather/gatherers/stacks-test.js | 2 +- core/test/gather/mock-commands.js | 14 +- core/test/gather/navigation-runner-test.js | 7 +- core/test/test-env/mocha-setup.js | 2 +- core/test/test-utils.js | 12 +- core/test/user-flow-test.js | 12 +- flow-report/test/setup/env-setup.ts | 2 +- package.json | 6 +- types/internal/test.d.ts | 2 +- yarn.lock | 361 ++++++++++++------ 14 files changed, 281 insertions(+), 172 deletions(-) diff --git a/cli/test/cli/bin-test.js b/cli/test/cli/bin-test.js index 710b05970684..43170f0518ef 100644 --- a/cli/test/cli/bin-test.js +++ b/cli/test/cli/bin-test.js @@ -7,16 +7,15 @@ import {pathToFileURL} from 'url'; import * as td from 'testdouble'; -import jestMock from 'jest-mock'; import {LH_ROOT} from '../../../shared/root.js'; -import {readJson} from '../../../core/test/test-utils.js'; +import {fnAny, readJson} from '../../../core/test/test-utils.js'; -const mockRunLighthouse = jestMock.fn(); -const mockGetFlags = jestMock.fn(); -const mockAskPermission = jestMock.fn(); -const mockSentryInit = jestMock.fn(); -const mockLoggerSetLevel = jestMock.fn(); +const mockRunLighthouse = fnAny(); +const mockGetFlags = fnAny(); +const mockAskPermission = fnAny(); +const mockSentryInit = fnAny(); +const mockLoggerSetLevel = fnAny(); /** @type {import('../../bin.js')} */ let bin; diff --git a/core/test/config/config-test.js b/core/test/config/config-test.js index afe4ba39b886..a8ef68d87632 100644 --- a/core/test/config/config-test.js +++ b/core/test/config/config-test.js @@ -4,8 +4,6 @@ * SPDX-License-Identifier: Apache-2.0 */ -import jestMock from 'jest-mock'; - import {Audit as BaseAudit} from '../../audits/audit.js'; import BaseGatherer from '../../gather/base-gatherer.js'; import {initializeConfig, getConfigDisplayString} from '../../config/config.js'; @@ -13,6 +11,7 @@ import {LH_ROOT} from '../../../shared/root.js'; import * as format from '../../../shared/localization/format.js'; import defaultConfig from '../../config/default-config.js'; import {nonSimulatedSettingsOverrides} from '../../config/constants.js'; +import {fnAny} from '../test-utils.js'; describe('Config', () => { /** @type {LH.Gatherer.GatherMode} */ @@ -106,14 +105,14 @@ describe('Config', () => { it('should throw on invalid artifact definitions', async () => { const badGatherer = new BaseGatherer(); - badGatherer.getArtifact = jestMock.fn(); + badGatherer.getArtifact = fnAny(); const config = {artifacts: [{id: 'BadGatherer', gatherer: {instance: badGatherer}}]}; await expect(initializeConfig(gatherMode, config)).rejects.toThrow(/Gatherer for BadGather/); }); it('should filter configuration by gatherMode', async () => { const timespanGatherer = new BaseGatherer(); - timespanGatherer.getArtifact = jestMock.fn(); + timespanGatherer.getArtifact = fnAny(); timespanGatherer.meta = {supportedModes: ['timespan']}; const config = { @@ -186,11 +185,11 @@ describe('Config', () => { beforeEach(() => { const dependencySymbol = Symbol('dependency'); dependencyGatherer = new BaseGatherer(); - dependencyGatherer.getArtifact = jestMock.fn(); + dependencyGatherer.getArtifact = fnAny(); dependencyGatherer.meta = {symbol: dependencySymbol, supportedModes: ['snapshot']}; // @ts-expect-error - we satisfy the interface on the next line dependentGatherer = new BaseGatherer(); - dependentGatherer.getArtifact = jestMock.fn(); + dependentGatherer.getArtifact = fnAny(); dependentGatherer.meta = { supportedModes: ['snapshot'], dependencies: {ImageElements: dependencySymbol}, @@ -250,7 +249,7 @@ describe('Config', () => { beforeEach(() => { const gatherer = new BaseGatherer(); - gatherer.getArtifact = jestMock.fn(); + gatherer.getArtifact = fnAny(); gatherer.meta = {supportedModes: ['navigation']}; class ExtraAudit extends BaseAudit { diff --git a/core/test/gather/driver/execution-context-test.js b/core/test/gather/driver/execution-context-test.js index d9dfd4640bf0..a9057c0a2e3c 100644 --- a/core/test/gather/driver/execution-context-test.js +++ b/core/test/gather/driver/execution-context-test.js @@ -41,7 +41,8 @@ describe('ExecutionContext', () => { it('should clear context on frame navigations', async () => { const executionContext = new ExecutionContext(sessionMock); - const frameListener = sessionMock.on.mock.calls.find(call => call[0] === 'Page.frameNavigated'); + const frameListener = sessionMock.on.mock.calls + .find(call => call[0] === 'Page.frameNavigated') ?? []; expect(frameListener).toBeDefined(); await forceNewContextId(executionContext, 42); @@ -54,7 +55,7 @@ describe('ExecutionContext', () => { const executionContext = new ExecutionContext(sessionMock); const executionDestroyed = sessionMock.on.mock.calls - .find(call => call[0] === 'Runtime.executionContextDestroyed'); + .find(call => call[0] === 'Runtime.executionContextDestroyed') ?? []; expect(executionDestroyed).toBeDefined(); await forceNewContextId(executionContext, 42); diff --git a/core/test/gather/driver/target-manager-test.js b/core/test/gather/driver/target-manager-test.js index 3f5eb96d7dea..420150af6120 100644 --- a/core/test/gather/driver/target-manager-test.js +++ b/core/test/gather/driver/target-manager-test.js @@ -83,7 +83,7 @@ describe('TargetManager', () => { await targetManager.enable(); expect(sessionMock.on).toHaveBeenCalled(); - const sessionListener = sessionMock.on.mock.calls.find(c => c[0] === 'sessionattached')[1]; + const sessionListener = sessionMock.on.mock.calls.find(c => c[0] === 'sessionattached')?.[1]; // Original, attach. expect(sendMock.findAllInvocations('Target.getTargetInfo')).toHaveLength(1); diff --git a/core/test/gather/gatherers/stacks-test.js b/core/test/gather/gatherers/stacks-test.js index 4bed60966c4e..13a710598221 100644 --- a/core/test/gather/gatherers/stacks-test.js +++ b/core/test/gather/gatherers/stacks-test.js @@ -8,7 +8,7 @@ import StacksGatherer from '../../../gather/gatherers/stacks.js'; import {fnAny} from '../../test-utils.js'; describe('StacksGatherer', () => { - /** @type {{executionContext: {evaluate: Mock}}} */ + /** @type {{executionContext: {evaluate: Mock}}} */ let driver; beforeEach(() => { diff --git a/core/test/gather/mock-commands.js b/core/test/gather/mock-commands.js index ac8a9c11cfda..2fbc44b7e2b3 100644 --- a/core/test/gather/mock-commands.js +++ b/core/test/gather/mock-commands.js @@ -84,9 +84,9 @@ function createMockSendCommandFn() { */ findInvocation(command) { expect(mockFn).toHaveBeenCalledWith(command, expect.anything()); - return mockFn.mock.calls.find( - call => call[0] === command - )[1]; + const call = mockFn.mock.calls.find(call => call[0] === command); + if (!call) throw new Error(`missing invocation for command: ${command}`); + return call[1]; }, /** * @param {keyof LH.CrdpCommands} command @@ -140,7 +140,9 @@ function createMockOnceFn() { */ findListener(event) { expect(mockFn).toHaveBeenCalledWith(event, expect.anything()); - return mockFn.mock.calls.find(call => call[0] === event)[1]; + const call = mockFn.mock.calls.find(call => call[0] === event); + if (!call) throw new Error(`missing listener for event: ${event}`); + return call[1]; }, /** * @param {keyof LH.CrdpEvents} event @@ -193,7 +195,9 @@ function createMockOnFn() { */ findListener(event) { expect(mockFn).toHaveBeenCalledWith(event, expect.anything()); - return mockFn.mock.calls.find(call => call[0] === event)[1]; + const call = mockFn.mock.calls.find(call => call[0] === event); + if (!call) throw new Error(`missing listener for event: ${event}`); + return call[1]; }, /** * @param {keyof LH.CrdpEvents} event diff --git a/core/test/gather/navigation-runner-test.js b/core/test/gather/navigation-runner-test.js index ceb57f67d9df..094a4d4e7f81 100644 --- a/core/test/gather/navigation-runner-test.js +++ b/core/test/gather/navigation-runner-test.js @@ -4,8 +4,6 @@ * SPDX-License-Identifier: Apache-2.0 */ -import jestMock from 'jest-mock'; - import { createMockDriver, createMockBaseArtifacts, @@ -33,7 +31,7 @@ const DevtoolsLogGatherer = (await import('../../gather/gatherers/devtools-log.j const TraceGatherer = (await import('../../gather/gatherers/trace.js')).default; const {initializeConfig} = await import('../../config/config.js'); -/** @typedef {{meta: LH.Gatherer.GathererMeta<'Accessibility'>, getArtifact: Mock, startInstrumentation: Mock, stopInstrumentation: Mock, startSensitiveInstrumentation: Mock, stopSensitiveInstrumentation: Mock}} MockGatherer */ +/** @typedef {{meta: LH.Gatherer.GathererMeta<'Accessibility'>, getArtifact: Mock, startInstrumentation: Mock, stopInstrumentation: Mock, startSensitiveInstrumentation: Mock, stopSensitiveInstrumentation: Mock}} MockGatherer */ describe('NavigationRunner', () => { let requestedUrl = ''; @@ -251,8 +249,7 @@ describe('NavigationRunner', () => { if (!resolvedConfig.artifacts) throw new Error('No artifacts'); const err = new Error('Error in dependency chain'); - resolvedConfig.artifacts[0].gatherer.instance.startInstrumentation = jestMock - .fn() + resolvedConfig.artifacts[0].gatherer.instance.startInstrumentation = fnAny() .mockRejectedValue(err); resolvedConfig.artifacts[1].dependencies = {Accessibility: {id: 'Timespan'}}; resolvedConfig.artifacts[2].dependencies = {Accessibility: {id: 'Timespan'}}; diff --git a/core/test/test-env/mocha-setup.js b/core/test/test-env/mocha-setup.js index e1ba878ad869..55324f89e894 100644 --- a/core/test/test-env/mocha-setup.js +++ b/core/test/test-env/mocha-setup.js @@ -63,6 +63,7 @@ function getSnapshotState(testFile) { const snapshotDir = path.join(path.dirname(testFile), '__snapshots__'); const snapshotFile = path.join(snapshotDir, path.basename(testFile) + '.snap'); snapshotState = new SnapshotState(snapshotFile, { + rootDir: snapshotDir, updateSnapshot: process.env.SNAPSHOT_UPDATE ? 'all' : 'none', prettierPath: '', snapshotFormat: {}, @@ -120,7 +121,6 @@ expect.extend({ const context = {snapshotState, currentTestName: title}; // @ts-expect-error - this is enough for snapshots to work. const matcher = toMatchInlineSnapshot.bind(context); - // @ts-expect-error - not sure why these types are so wrong const result = matcher(actual, expected); // @ts-expect-error - not sure why these types are so wrong if (!result.pass) snapshotTestFailed = true; diff --git a/core/test/test-utils.js b/core/test/test-utils.js index 27619b78fe70..a3d01b9a67d0 100644 --- a/core/test/test-utils.js +++ b/core/test/test-utils.js @@ -207,7 +207,7 @@ async function makeMocksForGatherRunner() { }); await td.replaceEsm('../gather/driver/prepare.js', { prepareTargetForNavigationMode: jestMock.fn(), - prepareTargetForIndividualNavigation: jestMock.fn().mockResolvedValue({warnings: []}), + prepareTargetForIndividualNavigation: fnAny().mockResolvedValue({warnings: []}), enableAsyncStacks: jestMock.fn().mockReturnValue(jestMock.fn()), }); await td.replaceEsm('../gather/driver/storage.js', { @@ -216,7 +216,7 @@ async function makeMocksForGatherRunner() { getImportantStorageWarning: jestMock.fn(), }); await td.replaceEsm('../gather/driver/navigation.js', { - gotoURL: jestMock.fn().mockResolvedValue({ + gotoURL: fnAny().mockResolvedValue({ mainDocumentUrl: 'http://example.com', warnings: [], }), @@ -225,9 +225,11 @@ async function makeMocksForGatherRunner() { /** * Same as jestMock.fn(), but uses `any` instead of `unknown`. + * This makes it simpler to override existing properties in test files that are + * typechecked. */ const fnAny = () => { - return /** @type {Mock} */ (jestMock.fn()); + return /** @type {Mock} */ (jestMock.fn()); }; /** @@ -288,7 +290,7 @@ function getURLArtifactFromDevtoolsLog(devtoolsLog) { * * @param {string} modulePath * @param {ImportMeta} importMeta - * @return {Promise>>} + * @return {Promise>>} */ async function importMock(modulePath, importMeta) { const mock = await import(new URL(modulePath, importMeta.url).href); @@ -304,7 +306,7 @@ async function importMock(modulePath, importMeta) { * * @param {string} modulePath * @param {ImportMeta} importMeta - * @return {Record>} + * @return {Record>} */ function requireMock(modulePath, importMeta) { const dir = path.dirname(url.fileURLToPath(importMeta.url)); diff --git a/core/test/user-flow-test.js b/core/test/user-flow-test.js index 56e7efcd2ace..6f9080d2214c 100644 --- a/core/test/user-flow-test.js +++ b/core/test/user-flow-test.js @@ -4,17 +4,17 @@ * SPDX-License-Identifier: Apache-2.0 */ -import jestMock from 'jest-mock'; import * as td from 'testdouble'; import {Runner} from '../runner.js'; import {createMockPage, mockRunnerModule} from './gather/mock-driver.js'; +import {fnAny} from './test-utils.js'; -const snapshotModule = {snapshotGather: jestMock.fn()}; +const snapshotModule = {snapshotGather: fnAny()}; await td.replaceEsm('../gather/snapshot-runner.js', snapshotModule); -const navigationModule = {navigationGather: jestMock.fn()}; +const navigationModule = {navigationGather: fnAny()}; await td.replaceEsm('../gather/navigation-runner.js', navigationModule); -const timespanModule = {startTimespanGather: jestMock.fn()}; +const timespanModule = {startTimespanGather: fnAny()}; await td.replaceEsm('../gather/timespan-runner.js', timespanModule); const mockRunner = await mockRunnerModule(); @@ -68,7 +68,7 @@ describe('UserFlow', () => { computedCache: new Map(), }, }; - const timespan = {endTimespanGather: jestMock.fn().mockResolvedValue(timespanGatherResult)}; + const timespan = {endTimespanGather: fnAny().mockResolvedValue(timespanGatherResult)}; timespanModule.startTimespanGather.mockReset(); timespanModule.startTimespanGather.mockResolvedValue(timespan); }); @@ -206,7 +206,6 @@ describe('UserFlow', () => { let teardownDone = false; navigationModule.navigationGather.mockImplementation(async (_, cb) => { setupDone = true; - // @ts-expect-error await cb(); teardownDone = true; }); @@ -238,7 +237,6 @@ describe('UserFlow', () => { it('should throw errors from the teardown phase', async () => { navigationModule.navigationGather.mockImplementation(async (_, cb) => { - // @ts-expect-error await cb(); throw new Error('Teardown Error'); }); diff --git a/flow-report/test/setup/env-setup.ts b/flow-report/test/setup/env-setup.ts index 49e173896b0a..47ecc1b82a55 100644 --- a/flow-report/test/setup/env-setup.ts +++ b/flow-report/test/setup/env-setup.ts @@ -42,7 +42,7 @@ const rootHooks = { // Functions not implemented in JSDOM. window.Element.prototype.scrollIntoView = jestMock.fn(); - global.self.matchMedia = jestMock.fn(() => ({ + global.self.matchMedia = jestMock.fn(() => ({ addListener: jestMock.fn(), })); diff --git a/package.json b/package.json index 13c0f46a1dd9..f8d7d85ab3b4 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "@esbuild-kit/esm-loader": "^2.1.1", "@esbuild-plugins/node-modules-polyfill": "^0.1.4", "@formatjs/icu-messageformat-parser": "^2.6.2", - "@jest/fake-timers": "^28.1.0", + "@jest/fake-timers": "^29.7.0", "@testing-library/preact": "^3.1.1", "@testing-library/preact-hooks": "^1.1.0", "@types/archiver": "^2.1.2", @@ -155,8 +155,8 @@ "gh-pages": "^2.0.1", "glob": "^7.1.3", "idb-keyval": "2.2.0", - "jest-mock": "^27.3.0", - "jest-snapshot": "^28.1.0", + "jest-mock": "^29.7.0", + "jest-snapshot": "^29.7.0", "jsdom": "^12.2.0", "lighthouse-plugin-soft-navigation": "^1.0.1", "magic-string": "^0.25.7", diff --git a/types/internal/test.d.ts b/types/internal/test.d.ts index 2d17db2ed688..715156cee387 100644 --- a/types/internal/test.d.ts +++ b/types/internal/test.d.ts @@ -6,7 +6,7 @@ declare global { var expect: import('expect').Expect; - type Mock = import('jest-mock').Mock; + type Mock = import('jest-mock').Mock<(...args: any) => T>; } declare module 'expect' { diff --git a/yarn.lock b/yarn.lock index 6a4609c3213b..95ee9881e342 100644 --- a/yarn.lock +++ b/yarn.lock @@ -115,6 +115,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== +"@babel/helper-plugin-utils@^7.24.7": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" + integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== + "@babel/helper-simple-access@^7.17.7": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9" @@ -197,6 +202,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-jsx@^7.7.2": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d" + integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -269,7 +281,7 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.2.tgz#b77a52604b5cc836a9e1e08dca01cba67a12d2e8" integrity sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA== @@ -285,7 +297,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": +"@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.3.3": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.2.tgz#191abfed79ebe6f4242f643a9a5cbaa36b10b091" integrity sha512-0On6B8A4/+mFUto5WERt3EEuG1NznDirvwca1O8UwXQHVY8g3R7OzYgxXdOfMwLO08UrpUD/2+3Bclyq+/C94Q== @@ -935,17 +947,24 @@ dependencies: jest-get-type "^28.0.2" -"@jest/fake-timers@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.0.tgz#ea77878aabd5c5d50e1fc53e76d3226101e33064" - integrity sha512-Xqsf/6VLeAAq78+GNPzI7FZQRf5cCHj1qgQxCjws9n8rKw8r1UYoeaALwBvyuzOkpU3c1I6emeMySPa96rxtIg== +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== dependencies: - "@jest/types" "^28.1.0" - "@sinonjs/fake-timers" "^9.1.1" + jest-get-type "^29.6.3" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + dependencies: + "@jest/types" "^29.6.3" + "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^28.1.0" - jest-mock "^28.1.0" - jest-util "^28.1.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" "@jest/schemas@^28.0.2": version "28.0.2" @@ -954,44 +973,52 @@ dependencies: "@sinclair/typebox" "^0.23.3" -"@jest/transform@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.0.tgz#224a3c9ba4cc98e2ff996c0a89a2d59db15c74ce" - integrity sha512-omy2xe5WxlAfqmsTjTPxw+iXRTRnf+NtX0ToG+4S0tABeb4KsKmPUHq5UBuwunHg3tJRwgEQhEp0M/8oiatLEA== +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^28.1.0" - "@jridgewell/trace-mapping" "^0.3.7" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.0" - jest-regex-util "^28.0.2" - jest-util "^28.1.0" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" - write-file-atomic "^4.0.1" + write-file-atomic "^4.0.2" -"@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== +"@jest/types@^28.1.0": + version "28.1.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.0.tgz#508327a89976cbf9bd3e1cc74641a29fd7dfd519" + integrity sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA== dependencies: + "@jest/schemas" "^28.0.2" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" - "@types/yargs" "^16.0.0" + "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.0.tgz#508327a89976cbf9bd3e1cc74641a29fd7dfd519" - integrity sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA== +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== dependencies: - "@jest/schemas" "^28.0.2" + "@jest/schemas" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -1020,6 +1047,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + "@jridgewell/set-array@^1.0.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" @@ -1038,6 +1070,19 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== +"@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.18": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": version "0.3.13" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" @@ -1243,19 +1288,24 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.5.tgz#93f7b9f4e3285a7a9ade7557d9a8d36809cbc47d" integrity sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg== -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sinonjs/commons@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^9.1.1": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== +"@sinonjs/fake-timers@^10.0.2": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== dependencies: - "@sinonjs/commons" "^1.7.0" + "@sinonjs/commons" "^3.0.0" "@testing-library/dom@^8.11.1": version "8.13.0" @@ -1300,13 +1350,6 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== -"@types/babel__traverse@^7.0.6": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639" - integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== - dependencies: - "@babel/types" "^7.3.0" - "@types/chrome@^0.0.154": version "0.0.154" resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.154.tgz#7992e97364f4447e961028ad07ac843d0b052c2d" @@ -1515,11 +1558,6 @@ resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-6.0.1.tgz#f8ae4fbcd2b9ba4ff934698e28778961f9cb22ca" integrity sha512-ARATsLdrGPUnaBvxLhUlnltcMgn7pQG312S8ccdYlnyijabrX9RN/KN/iGj9Am96CoW8e/K9628BA7Bv4XHdrA== -"@types/prettier@^2.1.5": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" - integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA== - "@types/resize-observer-browser@^0.1.1": version "0.1.1" resolved "https://registry.yarnpkg.com/@types/resize-observer-browser/-/resize-observer-browser-0.1.1.tgz#9b7cdae9cdc8b1a7020ca7588018dac64c770866" @@ -1574,13 +1612,6 @@ dependencies: "@types/yargs-parser" "*" -"@types/yargs@^16.0.0": - version "16.0.1" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.1.tgz#5fc5d41f69762e00fbecbc8d4bf9dea47d8726f4" - integrity sha512-x4HABGLyzr5hKUzBC9dvjciOTm11WVH1NWonNjGgxapnTHu5SWUqyqn0zQ6Re0yQU0lsQ6ztLCoMAKDGZflyxA== - dependencies: - "@types/yargs-parser" "*" - "@types/yargs@^17.0.8": version "17.0.8" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.8.tgz#d23a3476fd3da8a0ea44b5494ca7fa677b9dad4c" @@ -2667,13 +2698,18 @@ conventional-commits-parser@^3.2.0: split2 "^3.0.0" through2 "^4.0.0" -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== dependencies: safe-buffer "~5.1.1" +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + cookie@^0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" @@ -2964,6 +3000,11 @@ diff-sequences@^28.0.2: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.0.2.tgz#40f8d4ffa081acbd8902ba35c798458d0ff1af41" integrity sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ== +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + diff@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" @@ -3525,6 +3566,17 @@ expect@^28.1.0: jest-message-util "^28.1.0" jest-util "^28.1.0" +expect@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -3618,6 +3670,11 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= +fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" @@ -4727,27 +4784,42 @@ jest-diff@^28.1.0: jest-get-type "^28.0.2" pretty-format "^28.1.0" +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + jest-get-type@^28.0.2: version "28.0.2" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== -jest-haste-map@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.0.tgz#6c1ee2daf1c20a3e03dbd8e5b35c4d73d2349cf0" - integrity sha512-xyZ9sXV8PtKi6NCrJlmq53PyNVHzxmcfXNVvIRHpHmh1j/HChC4pwKgyjj7Z9us19JMw8PpQTJsFWOsIfT93Dw== +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^29.6.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^28.0.2" - jest-util "^28.1.0" - jest-worker "^28.1.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" micromatch "^4.0.4" - walker "^1.0.7" + walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" @@ -4761,6 +4833,16 @@ jest-matcher-utils@^28.1.0: jest-get-type "^28.0.2" pretty-format "^28.1.0" +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + jest-message-util@^28.1.0: version "28.1.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.0.tgz#7e8f0b9049e948e7b94c2a52731166774ba7d0af" @@ -4776,55 +4858,60 @@ jest-message-util@^28.1.0: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^27.3.0: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" - integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" -jest-mock@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.0.tgz#ccc7cc12a9b330b3182db0c651edc90d163ff73e" - integrity sha512-H7BrhggNn77WhdL7O1apG0Q/iwl0Bdd5E1ydhCJzL3oBLh/UYxAwR3EJLsBZ9XA3ZU4PA3UNw4tQjduBTCTmLw== +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^29.6.3" "@types/node" "*" + jest-util "^29.7.0" -jest-regex-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" - integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== -jest-snapshot@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.0.tgz#4b74fa8816707dd10fe9d551c2c258e5a67b53b6" - integrity sha512-ex49M2ZrZsUyQLpLGxQtDbahvgBjlLPgklkqGM0hq/F7W/f8DyqZxVHjdy19QKBm4O93eDp+H5S23EiTbbUmHw== +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-jsx" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.1.0" - "@jest/transform" "^28.1.0" - "@jest/types" "^28.1.0" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^28.1.0" + expect "^29.7.0" graceful-fs "^4.2.9" - jest-diff "^28.1.0" - jest-get-type "^28.0.2" - jest-haste-map "^28.1.0" - jest-matcher-utils "^28.1.0" - jest-message-util "^28.1.0" - jest-util "^28.1.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" natural-compare "^1.4.0" - pretty-format "^28.1.0" - semver "^7.3.5" + pretty-format "^29.7.0" + semver "^7.5.3" jest-util@^28.1.0: version "28.1.0" @@ -4838,12 +4925,25 @@ jest-util@^28.1.0: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-worker@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.0.tgz#ced54757a035e87591e1208253a6e3aac1a855e5" - integrity sha512-ZHwM6mNwaWBR52Snff8ZvsCTqQsvhCxP/bT1I6T6DAnb6ygkshsyLQIMxFwHpYxht0HOoqt23JlC01viI7T03A== +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== dependencies: + "@jest/types" "^29.6.3" "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" merge-stream "^2.0.0" supports-color "^8.0.0" @@ -5227,12 +5327,12 @@ make-dir@^3.0.0: dependencies: semver "^6.0.0" -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== dependencies: - tmpl "1.0.x" + tmpl "1.0.5" map-cache@^0.2.2: version "0.2.2" @@ -5975,6 +6075,15 @@ pretty-format@^28.1.0: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + pretty-json-stringify@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/pretty-json-stringify/-/pretty-json-stringify-0.0.2.tgz#dc0f1dbeab6bc1ab15f40d4cce4f38b75b17a334" @@ -6449,14 +6558,14 @@ semver@^6.0.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: +semver@^7.2.1, semver@^7.3.4, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" -semver@^7.6.3: +semver@^7.5.3, semver@^7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -7007,7 +7116,7 @@ tmp@^0.2.1: dependencies: rimraf "^3.0.0" -tmpl@1.0.x: +tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== @@ -7326,12 +7435,12 @@ wait-for-expect@^3.0.2: resolved "https://registry.yarnpkg.com/wait-for-expect/-/wait-for-expect-3.0.2.tgz#d2f14b2f7b778c9b82144109c8fa89ceaadaa463" integrity sha512-cfS1+DZxuav1aBYbaO/kE06EOS8yRw7qOFoD3XtjTkYvCvh3zUvNST8DXK/nPaeqIzIv3P3kL3lRJn8iwOiSag== -walker@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= +walker@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== dependencies: - makeerror "1.0.x" + makeerror "1.0.12" webidl-conversions@^3.0.0: version "3.0.1" @@ -7469,10 +7578,10 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write-file-atomic@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" - integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== +write-file-atomic@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== dependencies: imurmurhash "^0.1.4" signal-exit "^3.0.7" From 2235ae18c7a6f73454d7138fc58e25408a186aa1 Mon Sep 17 00:00:00 2001 From: Connor Clark Date: Thu, 15 Aug 2024 17:01:28 -0700 Subject: [PATCH 2/2] update --- core/test/gather/driver/execution-context-test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/test/gather/driver/execution-context-test.js b/core/test/gather/driver/execution-context-test.js index a9057c0a2e3c..3cee039b876e 100644 --- a/core/test/gather/driver/execution-context-test.js +++ b/core/test/gather/driver/execution-context-test.js @@ -43,7 +43,7 @@ describe('ExecutionContext', () => { const frameListener = sessionMock.on.mock.calls .find(call => call[0] === 'Page.frameNavigated') ?? []; - expect(frameListener).toBeDefined(); + expect(frameListener[1]).toBeDefined(); await forceNewContextId(executionContext, 42); expect(executionContext.getContextId()).toEqual(42); @@ -56,7 +56,7 @@ describe('ExecutionContext', () => { const executionDestroyed = sessionMock.on.mock.calls .find(call => call[0] === 'Runtime.executionContextDestroyed') ?? []; - expect(executionDestroyed).toBeDefined(); + expect(executionDestroyed[1]).toBeDefined(); await forceNewContextId(executionContext, 42); expect(executionContext.getContextId()).toEqual(42);