diff --git a/.eslintrc b/.eslintrc index 2787973b0..deabf7514 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,8 +1,7 @@ { "root": true, "env": { - "browser": true, - "jest": true + "browser": true }, "overrides": [ { @@ -30,6 +29,15 @@ "rules": { "no-console": "off" } + }, + { + "files": [ + "packages/jest-helpers/**/*.ts{x,}", + "**/__tests__/**/*.ts{x,}" + ], + "rules": { + "import/no-extraneous-dependencies": "off" + } } ] } diff --git a/package.json b/package.json index 99c46c1bb..382abded6 100644 --- a/package.json +++ b/package.json @@ -21,14 +21,14 @@ "@changesets/cli": "2.26.2", "@commitlint/cli": "17.7.1", "@commitlint/config-conventional": "17.7.0", + "@jest/globals": "^29.6.4", "@rollup/plugin-babel": "6.0.3", "@rollup/plugin-node-resolve": "15.2.1", "@scaleway/eslint-config-react": "workspace:*", "@scaleway/tsconfig": "workspace:*", - "@testing-library/jest-dom": "5.17.0", + "@testing-library/jest-dom": "6.0.1", "@testing-library/react": "13.4.0", "@tsd/typescript": "5.1.6", - "@types/jest": "29.5.4", "@types/node": "18.17.9", "@types/prop-types": "15.7.5", "@types/react": "18.2.21", diff --git a/packages/changesets-renovate/src/__tests__/generate-changeset.ts b/packages/changesets-renovate/src/__tests__/generate-changeset.ts index a62807068..b20ea4b2e 100644 --- a/packages/changesets-renovate/src/__tests__/generate-changeset.ts +++ b/packages/changesets-renovate/src/__tests__/generate-changeset.ts @@ -1,3 +1,4 @@ +import { afterEach, beforeEach, describe, expect, it, jest } from '@jest/globals' import fs from 'node:fs/promises' import { simpleGit } from 'simple-git' import { run } from '..' @@ -95,9 +96,9 @@ describe('generate changeset file', () => { }) fs.readFile = jest - .fn() + .fn() .mockResolvedValue(`{"name":"packageName","version":"1.0.0"}`) - fs.writeFile = jest.fn() + fs.writeFile = jest.fn() await run() @@ -129,9 +130,9 @@ describe('generate changeset file', () => { }) fs.readFile = jest - .fn() + .fn() .mockResolvedValue(`{"name":"packageName","workspaces":[]}`) - fs.writeFile = jest.fn() + fs.writeFile = jest.fn() await run() @@ -159,8 +160,8 @@ describe('generate changeset file', () => { `, }) - fs.readFile = jest.fn().mockResolvedValue(`{"name":"packageName"}`) - fs.writeFile = jest.fn() + fs.readFile = jest.fn().mockResolvedValue(`{"name":"packageName"}`) + fs.writeFile = jest.fn() await run() diff --git a/packages/jest-helpers/src/__tests__/index.test.tsx b/packages/jest-helpers/src/__tests__/index.test.tsx index 10fe2f4c0..4bd4c3bd4 100644 --- a/packages/jest-helpers/src/__tests__/index.test.tsx +++ b/packages/jest-helpers/src/__tests__/index.test.tsx @@ -1,3 +1,4 @@ +import { beforeAll, describe, expect, it, jest, test } from '@jest/globals' import makeHelpers from '..' import type { RenderWithThemeFn } from '../helpers/renderWithTheme' import type { ShouldMatchEmotionSnapshotFn } from '../helpers/shouldMatchEmotionSnapshot' @@ -31,7 +32,7 @@ describe('@jest-helpers', () => { }) test('should call tranform with shouldMatchEmotionSnapshot', async () => { - const transform = jest.fn() + const transform = jest.fn() await shouldMatchEmotionSnapshot(
, { transform }) expect(transform).toHaveBeenCalledTimes(1) @@ -42,7 +43,7 @@ describe('@jest-helpers', () => { }) it('should call transform with shouldMatchEmotionSnapshot', async () => { - const transform = jest.fn() + const transform = jest.fn() await shouldMatchEmotionSnapshotWithPortal(
, { transform }) expect(transform).toHaveBeenCalledTimes(1) diff --git a/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshot.ts b/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshot.ts index e56159b7f..77603c862 100644 --- a/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshot.ts +++ b/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshot.ts @@ -1,3 +1,4 @@ +import { expect } from '@jest/globals' import type { RenderOptions, render } from '@testing-library/react' import type { ReactNode } from 'react' import type { RenderWithThemeFn } from './renderWithTheme' diff --git a/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshotWithPortal.ts b/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshotWithPortal.ts index 74c0535a7..075db4f5e 100644 --- a/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshotWithPortal.ts +++ b/packages/jest-helpers/src/helpers/shouldMatchEmotionSnapshotWithPortal.ts @@ -1,3 +1,4 @@ +import { expect, jest } from '@jest/globals' import type { RenderOptions, render } from '@testing-library/react' import type { ReactNode } from 'react' import type { RenderWithThemeFn } from './renderWithTheme' diff --git a/packages/jest-helpers/src/index.ts b/packages/jest-helpers/src/index.ts index fafe3ef61..d05f9f427 100644 --- a/packages/jest-helpers/src/index.ts +++ b/packages/jest-helpers/src/index.ts @@ -1,5 +1,6 @@ import type { CreateSerializerOptions } from '@emotion/jest' import { createSerializer } from '@emotion/jest' +import { expect } from '@jest/globals' import type { FC, ReactNode } from 'react' import type { RenderWithThemeFn } from './helpers/renderWithTheme' import makeRenderWithTheme from './helpers/renderWithTheme' diff --git a/packages/outdated-browser/src/__tests__/index.ts b/packages/outdated-browser/src/__tests__/index.ts index 3fe7dedd7..34aa0e91f 100644 --- a/packages/outdated-browser/src/__tests__/index.ts +++ b/packages/outdated-browser/src/__tests__/index.ts @@ -1,3 +1,5 @@ +import { afterEach, beforeAll, describe, expect, jest, test } from '@jest/globals' + /** * @jest-environment jsdom */ diff --git a/packages/random-name/src/__tests__/index.ts b/packages/random-name/src/__tests__/index.ts index 9685efe3a..33ceea3af 100644 --- a/packages/random-name/src/__tests__/index.ts +++ b/packages/random-name/src/__tests__/index.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from '@jest/globals' import randomName from '..' describe('randomName', () => { diff --git a/packages/regex/src/__tests__/index.ts b/packages/regex/src/__tests__/index.ts index 261db15b2..2814f3e98 100644 --- a/packages/regex/src/__tests__/index.ts +++ b/packages/regex/src/__tests__/index.ts @@ -1,3 +1,4 @@ +import { describe, expect, test } from '@jest/globals' import { absoluteLinuxPath, accessKeyRegex, diff --git a/packages/use-dataloader/src/__tests__/DataLoaderProvider.test.tsx b/packages/use-dataloader/src/__tests__/DataLoaderProvider.test.tsx index 587663e6a..7d2ff6e43 100644 --- a/packages/use-dataloader/src/__tests__/DataLoaderProvider.test.tsx +++ b/packages/use-dataloader/src/__tests__/DataLoaderProvider.test.tsx @@ -1,3 +1,4 @@ +import { describe, expect, jest, test } from '@jest/globals' import { render, renderHook, screen, waitFor } from '@testing-library/react' import type { ReactNode } from 'react' import DataLoaderProvider, { useDataLoaderContext } from '../DataLoaderProvider' @@ -62,7 +63,7 @@ describe('DataLoaderProvider', () => { try { // @ts-expect-error Should throw an error await result.current.reload(3).catch(undefined) - fail('It should throw an error') + throw new Error('It should throw an error') } catch (error) { expect((error as Error).message).toBe(KEY_IS_NOT_STRING_ERROR) } @@ -72,7 +73,7 @@ describe('DataLoaderProvider', () => { try { // @ts-expect-error Should throw an error result.current.clearCachedData(3) - fail('It should throw an error') + throw new Error('It should throw an error') } catch (error) { expect((error as Error).message).toBe(KEY_IS_NOT_STRING_ERROR) expect(result.current.getCachedData(TEST_KEY)).toBe(true) @@ -122,7 +123,7 @@ describe('DataLoaderProvider', () => { if (testReload) { expect(await testReload()).toBeNull() } else { - fail('It shoulded be defined') + throw new Error('It shoulded be defined') } expect(result.current.getCachedData(TEST_KEY)).toBe(null) expect(result.current.getCachedData()).toStrictEqual({ test: null }) diff --git a/packages/use-dataloader/src/__tests__/dataloader.test.ts b/packages/use-dataloader/src/__tests__/dataloader.test.ts index 5fafe0cb1..d0f2f0ba2 100644 --- a/packages/use-dataloader/src/__tests__/dataloader.test.ts +++ b/packages/use-dataloader/src/__tests__/dataloader.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, jest, test } from '@jest/globals' import waitForExpect from 'wait-for-expect' import { StatusEnum } from '../constants' import DataLoader from '../dataloader' diff --git a/packages/use-dataloader/src/__tests__/helpers.test.ts b/packages/use-dataloader/src/__tests__/helpers.test.ts index f4cfb0c12..10c106cf5 100644 --- a/packages/use-dataloader/src/__tests__/helpers.test.ts +++ b/packages/use-dataloader/src/__tests__/helpers.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, test } from '@jest/globals' import { marshalQueryKey } from '../helpers' describe('marshalQueryKey', () => { diff --git a/packages/use-dataloader/src/__tests__/useDataLoader.test.tsx b/packages/use-dataloader/src/__tests__/useDataLoader.test.tsx index 3b0a9e95a..49ec2e8bf 100644 --- a/packages/use-dataloader/src/__tests__/useDataLoader.test.tsx +++ b/packages/use-dataloader/src/__tests__/useDataLoader.test.tsx @@ -1,4 +1,5 @@ /* eslint-disable no-console */ +import { describe, expect, jest, test } from '@jest/globals' import { renderHook, waitFor } from '@testing-library/react' import type { ReactNode } from 'react' import DataLoaderProvider, { useDataLoaderContext } from '../DataLoaderProvider' @@ -501,7 +502,7 @@ describe('useDataLoader', () => { }) test('should call onSuccess', async () => { - const onSuccess = jest.fn() + const onSuccess = jest.fn() const { result } = renderHook( props => useDataLoader(props.key, props.method, props.config), { @@ -523,8 +524,8 @@ describe('useDataLoader', () => { }) test('should call onError', async () => { - const onSuccess = jest.fn() - const onError = jest.fn() + const onSuccess = jest.fn() + const onError = jest.fn() const error = new Error('Test error') const { result } = renderHook( props => useDataLoader(props.key, props.method, props.config), @@ -557,8 +558,8 @@ describe('useDataLoader', () => { }) test('should override onError from Provider', async () => { - const onSuccess = jest.fn() - const onError = jest.fn() + const onSuccess = jest.fn() + const onError = jest.fn() const error = new Error('Test error') const onErrorProvider = jest.fn() const { result } = renderHook( @@ -593,7 +594,7 @@ describe('useDataLoader', () => { }) test('should call onError from Provider', async () => { - const onSuccess = jest.fn() + const onSuccess = jest.fn() const error = new Error('Test error') const onErrorProvider = jest.fn() const { result } = renderHook( @@ -629,7 +630,7 @@ describe('useDataLoader', () => { test('should clear error on new response', async () => { let success = false - const onSuccess = jest.fn() + const onSuccess = jest.fn() const onError = jest.fn(() => { success = true }) diff --git a/packages/use-growthbook/src/__tests__/AbTestProvider.tsx b/packages/use-growthbook/src/__tests__/AbTestProvider.tsx index 573c08323..e8fe8e4f2 100644 --- a/packages/use-growthbook/src/__tests__/AbTestProvider.tsx +++ b/packages/use-growthbook/src/__tests__/AbTestProvider.tsx @@ -1,5 +1,6 @@ // @ts-expect-error TODO: remove once Growthbook is correctly typed and export import { GrowthBook } from '@growthbook/growthbook-react' +import { beforeEach, describe, expect, it, jest } from '@jest/globals' import { render } from '@testing-library/react' import type { TrackingCallback } from '../AbTestProvider' import { AbTestProvider } from '../AbTestProvider' diff --git a/packages/use-growthbook/src/__tests__/useAbTestAttributes.ts b/packages/use-growthbook/src/__tests__/useAbTestAttributes.ts index 5af29cfb7..7e5217799 100644 --- a/packages/use-growthbook/src/__tests__/useAbTestAttributes.ts +++ b/packages/use-growthbook/src/__tests__/useAbTestAttributes.ts @@ -1,12 +1,11 @@ // @ts-expect-error TODO: remove once Growthbook is correctly typed and export import { useGrowthBook } from '@growthbook/growthbook-react' +import { beforeEach, describe, expect, it, jest } from '@jest/globals' import { renderHook } from '@testing-library/react' import type { Attributes } from '../types' import { useAbTestAttributes } from '../useAbTestAttributes' -jest.mock('@growthbook/growthbook-react', () => ({ - useGrowthBook: jest.fn(), -})) +jest.mock('@growthbook/growthbook-react') describe('useAbTestAttributes', () => { let getAttributes: () => Attributes diff --git a/packages/use-gtm/src/__tests__/index.tsx b/packages/use-gtm/src/__tests__/index.tsx index 7e0ab4468..3a01a4eb0 100644 --- a/packages/use-gtm/src/__tests__/index.tsx +++ b/packages/use-gtm/src/__tests__/index.tsx @@ -1,3 +1,4 @@ +import { afterEach, beforeEach, describe, expect, it, jest } from '@jest/globals' import { fireEvent, renderHook } from '@testing-library/react' import mockdate from 'mockdate' import type { ReactNode } from 'react' diff --git a/packages/use-i18n/src/__tests__/formatDate.ts b/packages/use-i18n/src/__tests__/formatDate.ts index 4b2988748..a088586cf 100644 --- a/packages/use-i18n/src/__tests__/formatDate.ts +++ b/packages/use-i18n/src/__tests__/formatDate.ts @@ -1,3 +1,4 @@ +import { describe, expect, test } from '@jest/globals' import type { FormatDateOptions } from '../formatDate' import formatDate, { supportedFormats } from '../formatDate' diff --git a/packages/use-i18n/src/__tests__/formatUnit.ts b/packages/use-i18n/src/__tests__/formatUnit.ts index 0768ba756..d19b35e9c 100644 --- a/packages/use-i18n/src/__tests__/formatUnit.ts +++ b/packages/use-i18n/src/__tests__/formatUnit.ts @@ -1,3 +1,4 @@ +import { describe, expect, test } from '@jest/globals' import type { FormatUnitOptions } from '../formatUnit' import formatUnit, { supportedUnits } from '../formatUnit' diff --git a/packages/use-i18n/src/__tests__/usei18n.tsx b/packages/use-i18n/src/__tests__/usei18n.tsx index f7f74fd85..cebad5660 100644 --- a/packages/use-i18n/src/__tests__/usei18n.tsx +++ b/packages/use-i18n/src/__tests__/usei18n.tsx @@ -1,3 +1,4 @@ +import { afterEach, beforeEach, describe, expect, it, jest } from '@jest/globals' import { act, renderHook, waitFor } from '@testing-library/react' import mockdate from 'mockdate' import type { ReactNode } from 'react' diff --git a/packages/use-media/src/__tests__/useMedia.tsx b/packages/use-media/src/__tests__/useMedia.tsx index 4b608c05c..14d72d07d 100644 --- a/packages/use-media/src/__tests__/useMedia.tsx +++ b/packages/use-media/src/__tests__/useMedia.tsx @@ -1,3 +1,4 @@ +import { describe, expect, it, jest } from '@jest/globals' import { renderHook } from '@testing-library/react' import { useMedia } from '..' @@ -15,7 +16,7 @@ describe('useMedia hook', () => { callback() Object.defineProperty(window, 'matchMedia', { - value: jest.fn().mockImplementation((query: string) => ({ + value: jest.fn().mockImplementation((query: string) => ({ addEventListener: mockAddEventListener, addListener: jest.fn(), dispatchEvent: jest.fn(), @@ -43,7 +44,7 @@ describe('useMedia hook', () => { } Object.defineProperty(window, 'matchMedia', { - value: jest.fn().mockImplementation((query: string) => ({ + value: jest.fn().mockImplementation((query: string) => ({ addEventListener: mockAddEventListener, addListener: jest.fn(), dispatchEvent: jest.fn(), diff --git a/packages/use-query-params/src/__tests__/index.tsx b/packages/use-query-params/src/__tests__/index.tsx index 370164898..a41bb5720 100644 --- a/packages/use-query-params/src/__tests__/index.tsx +++ b/packages/use-query-params/src/__tests__/index.tsx @@ -1,3 +1,4 @@ +import { describe, expect, it, test } from '@jest/globals' import { act, renderHook } from '@testing-library/react' import type { History } from 'history' import { createMemoryHistory } from 'history' diff --git a/packages/use-random-name/src/__tests__/index.ts b/packages/use-random-name/src/__tests__/index.ts index 4cca2045a..1de9b079c 100644 --- a/packages/use-random-name/src/__tests__/index.ts +++ b/packages/use-random-name/src/__tests__/index.ts @@ -1,3 +1,4 @@ +import { afterAll, beforeAll, describe, expect, it, jest } from '@jest/globals' import { renderHook } from '@testing-library/react' import useRandomName from '..' diff --git a/packages/use-segment/src/__tests__/index.tsx b/packages/use-segment/src/__tests__/index.tsx index 0440ca60d..8e297d0ee 100644 --- a/packages/use-segment/src/__tests__/index.tsx +++ b/packages/use-segment/src/__tests__/index.tsx @@ -1,3 +1,4 @@ +import { beforeEach, describe, expect, it, jest } from '@jest/globals' import type { Context } from '@segment/analytics-next' import { AnalyticsBrowser } from '@segment/analytics-next' import { renderHook, waitFor } from '@testing-library/react' @@ -218,7 +219,7 @@ describe('segment hook', () => { .spyOn(AnalyticsBrowser, 'load') .mockResolvedValue([{} as Analytics, {} as Context]) - const onEventError = jest.fn() + const onEventError = jest.fn() const onError = jest.fn() const settings = { writeKey: 'pleasethrow' } diff --git a/packages/use-storage/src/__tests__/index.client.ts b/packages/use-storage/src/__tests__/index.client.ts index ca48ce272..26d61c661 100644 --- a/packages/use-storage/src/__tests__/index.client.ts +++ b/packages/use-storage/src/__tests__/index.client.ts @@ -2,6 +2,7 @@ * @jest-environment jsdom */ +import { afterEach, describe, expect, it } from '@jest/globals' import { act, renderHook } from '@testing-library/react' import { useLocalStorage, useSessionStorage } from '..' diff --git a/packages/use-storage/src/__tests__/index.server.ts b/packages/use-storage/src/__tests__/index.server.ts index d277c42f9..f4ec8f6ce 100644 --- a/packages/use-storage/src/__tests__/index.server.ts +++ b/packages/use-storage/src/__tests__/index.server.ts @@ -2,6 +2,7 @@ * @jest-environment node */ +import { describe, expect, it } from '@jest/globals' import { act, renderHook } from '@testing-library/react/pure' import { useLocalStorage, useSessionStorage } from '..' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0fd133763..b48373b80 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,6 +38,9 @@ importers: '@commitlint/config-conventional': specifier: 17.7.0 version: 17.7.0 + '@jest/globals': + specifier: ^29.6.4 + version: 29.6.4 '@rollup/plugin-babel': specifier: 6.0.3 version: 6.0.3(@babel/core@7.22.10)(rollup@3.28.1) @@ -51,17 +54,14 @@ importers: specifier: workspace:* version: link:packages/tsconfig '@testing-library/jest-dom': - specifier: 5.17.0 - version: 5.17.0 + specifier: 6.0.1 + version: 6.0.1(@jest/globals@29.6.4)(jest@29.6.4) '@testing-library/react': specifier: 13.4.0 version: 13.4.0(react-dom@18.2.0)(react@18.2.0) '@tsd/typescript': specifier: 5.1.6 version: 5.1.6 - '@types/jest': - specifier: 29.5.4 - version: 29.5.4 '@types/node': specifier: 18.17.9 version: 18.17.9 @@ -367,6 +367,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.22.5 + dev: true /@babel/compat-data@7.22.9: resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} @@ -537,7 +538,7 @@ packages: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-module-imports@7.21.4: @@ -551,7 +552,7 @@ packages: resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.10): @@ -703,6 +704,7 @@ packages: '@babel/helper-validator-identifier': 7.22.5 chalk: 2.4.2 js-tokens: 4.0.0 + dev: true /@babel/parser@7.22.10: resolution: {integrity: sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==} @@ -1403,7 +1405,7 @@ packages: '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10) - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/plugin-transform-react-pure-annotations@7.22.5(@babel/core@7.22.10): @@ -1787,15 +1789,6 @@ packages: '@babel/helper-validator-identifier': 7.22.5 to-fast-properties: 2.0.0 - /@babel/types@7.22.5: - resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.5 - to-fast-properties: 2.0.0 - dev: true - /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true @@ -2507,18 +2500,11 @@ packages: jest-mock: 29.6.3 dev: true - /@jest/expect-utils@29.6.3: - resolution: {integrity: sha512-nvOEW4YoqRKD9HBJ9OJ6przvIvP9qilp5nAn1462P5ZlL/MM9SgPEZFyjTGPfs7QkocdUsJa6KjHhyRn4ueItA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.6.3 - /@jest/expect-utils@29.6.4: resolution: {integrity: sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 - dev: true /@jest/expect@29.6.4: resolution: {integrity: sha512-Warhsa7d23+3X5bLbrbYvaehcgX5TLYhI03JKoedTiI8uJU4IhqYBWF7OSSgUyz4IgLpUYPkK0AehA5/fRclAA==} @@ -3945,7 +3931,7 @@ packages: resolution: {integrity: sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA==} engines: {node: '>=12'} dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 '@babel/runtime': 7.22.5 '@types/aria-query': 5.0.1 aria-query: 5.1.3 @@ -3954,17 +3940,32 @@ packages: lz-string: 1.5.0 pretty-format: 27.5.1 - /@testing-library/jest-dom@5.17.0: - resolution: {integrity: sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==} - engines: {node: '>=8', npm: '>=6', yarn: '>=1'} + /@testing-library/jest-dom@6.0.1(@jest/globals@29.6.4)(jest@29.6.4): + resolution: {integrity: sha512-0hx/AWrJp8EKr8LmC5jrV3Lx8TZySH7McU1Ix2czBPQnLd458CefSEGjZy7w8kaBRA6LhoPkGjoZ3yqSs338IQ==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + peerDependencies: + '@jest/globals': '>= 28' + '@types/jest': '>= 28' + jest: '>= 28' + vitest: '>= 0.32' + peerDependenciesMeta: + '@jest/globals': + optional: true + '@types/jest': + optional: true + jest: + optional: true + vitest: + optional: true dependencies: '@adobe/css-tools': 4.0.1 '@babel/runtime': 7.22.5 - '@types/testing-library__jest-dom': 5.14.5 + '@jest/globals': 29.6.4 aria-query: 5.1.3 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.5.14 + jest: 29.6.4(@types/node@18.17.9)(ts-node@10.9.1) lodash: 4.17.21 redent: 3.0.0 dev: true @@ -4072,8 +4073,9 @@ packages: /@types/jest@29.5.4: resolution: {integrity: sha512-PhglGmhWeD46FYOVLt3X7TiWjzwuVGW9wG/4qocPevXMjCmrIc5b6db9WjeGE4QYVpUAWMDv3v0IiBwObY289A==} dependencies: - expect: 29.6.3 + expect: 29.6.4 pretty-format: 29.6.3 + dev: false /@types/jsdom@20.0.1: resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} @@ -4148,12 +4150,6 @@ packages: /@types/stack-utils@2.0.1: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} - /@types/testing-library__jest-dom@5.14.5: - resolution: {integrity: sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==} - dependencies: - '@types/jest': 29.5.4 - dev: true - /@types/tough-cookie@4.0.2: resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} dev: true @@ -4972,7 +4968,7 @@ packages: optional: true dependencies: chalk: 4.1.2 - jest-worker: 29.5.0 + jest-worker: 29.6.4 p-limit: 3.1.0 dev: true @@ -5181,13 +5177,6 @@ packages: engines: {node: '>=8'} dev: true - /define-properties@1.1.4: - resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} - engines: {node: '>= 0.4'} - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - /define-properties@1.2.0: resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} @@ -6025,16 +6014,6 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /expect@29.6.3: - resolution: {integrity: sha512-x1vY4LlEMWUYVZQrFi4ZANXFwqYbJ/JNQspLVvzhW2BNY28aNcXMQH6imBbt+RBf5sVRTodYHXtSP/TLEU0Dxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/expect-utils': 29.6.3 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.6.3 - jest-message-util: 29.6.3 - jest-util: 29.6.3 - /expect@29.6.4: resolution: {integrity: sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6044,7 +6023,6 @@ packages: jest-matcher-utils: 29.6.4 jest-message-util: 29.6.3 jest-util: 29.6.3 - dev: true /extendable-error@0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} @@ -6967,15 +6945,6 @@ packages: - supports-color dev: true - /jest-diff@29.6.3: - resolution: {integrity: sha512-3sw+AdWnwH9sSNohMRKA7JiYUJSRr/WS6+sEFfBuhxU5V5GlEVKfvUn8JuMHE0wqKowemR1C2aHy8VtXbaV8dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.6.3 - /jest-diff@29.6.4: resolution: {integrity: sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6984,7 +6953,6 @@ packages: diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.6.3 - dev: true /jest-docblock@29.6.3: resolution: {integrity: sha512-2+H+GOTQBEm2+qFSQ7Ma+BvyV+waiIFxmZF5LdpBsAEjWX8QYjSCa4FrkIYtbfXUJJJnFCYrOtt6TZ+IAiTjBQ==} @@ -7085,15 +7053,6 @@ packages: engines: {node: '>=6.16.0'} dev: true - /jest-matcher-utils@29.6.3: - resolution: {integrity: sha512-6ZrMYINZdwduSt5Xu18/n49O1IgXdjsfG7NEZaQws9k69eTKWKcVbJBw/MZsjOZe2sSyJFmuzh8042XWwl54Zg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - jest-diff: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.6.3 - /jest-matcher-utils@29.6.4: resolution: {integrity: sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7102,7 +7061,6 @@ packages: jest-diff: 29.6.4 jest-get-type: 29.6.3 pretty-format: 29.6.3 - dev: true /jest-message-util@29.6.3: resolution: {integrity: sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==} @@ -7309,16 +7267,6 @@ packages: string-length: 4.0.2 dev: true - /jest-worker@29.5.0: - resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@types/node': 18.17.9 - jest-util: 29.6.3 - merge-stream: 2.0.0 - supports-color: 8.1.1 - dev: true - /jest-worker@29.6.4: resolution: {integrity: sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7977,7 +7925,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.4 + define-properties: 1.2.0 has-symbols: 1.0.3 object-keys: 1.1.1 diff --git a/rollup.config.mjs b/rollup.config.mjs index d7f4bdb67..b0e19160f 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -21,7 +21,7 @@ const external = id => [ ...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.peerDependencies || {}), - ...[], + ...['@jest/globals'], ].find(dep => new RegExp(`^${dep}`).test(id)) export default [ @@ -58,12 +58,12 @@ export default [ }), preserveShebangs(), PROFILE && - visualizer({ - brotliSize: true, - filename: '.reports/report.html', - gzipSize: true, - open: true, - }), + visualizer({ + brotliSize: true, + filename: '.reports/report.html', + gzipSize: true, + open: true, + }), ].filter(Boolean), }, {