diff --git a/packages/react-cards/config/tests.js b/packages/react-cards/config/tests.js
index c8f540d3da2cba..7d26fb36b5d0b2 100644
--- a/packages/react-cards/config/tests.js
+++ b/packages/react-cards/config/tests.js
@@ -9,10 +9,5 @@ setIconOptions({
disableWarnings: true,
});
-// Mock requestAnimationFrame for React 16+.
-global.requestAnimationFrame = callback => {
- setTimeout(callback, 0);
-};
-
// Configure enzyme.
configure({ adapter: new Adapter() });
diff --git a/packages/react-icon-provider/config/tests.js b/packages/react-icon-provider/config/tests.js
index f1e4a5670a217e..2e211ae9e21420 100644
--- a/packages/react-icon-provider/config/tests.js
+++ b/packages/react-icon-provider/config/tests.js
@@ -1,12 +1 @@
/** Jest test setup file. */
-
-const { configure } = require('enzyme');
-const Adapter = require('enzyme-adapter-react-16');
-
-// Mock requestAnimationFrame for React 16+.
-global.requestAnimationFrame = callback => {
- setTimeout(callback, 0);
-};
-
-// Configure enzyme.
-configure({ adapter: new Adapter() });
diff --git a/packages/react-icon-provider/src/IconProvider.test.tsx b/packages/react-icon-provider/src/IconProvider.test.tsx
index a62636d493d31f..3474f843d0762d 100644
--- a/packages/react-icon-provider/src/IconProvider.test.tsx
+++ b/packages/react-icon-provider/src/IconProvider.test.tsx
@@ -1,5 +1,5 @@
import * as React from 'react';
-import { mount } from 'enzyme';
+import { render } from '@testing-library/react';
import { IconProvider, useIconSubset } from './IconProvider';
import type { IIconSubset } from '@fluentui/style-utilities';
@@ -27,7 +27,7 @@ describe('IconProvider', () => {
resolvedIcon = useIconSubset();
return null;
};
- mount(
+ render(
,
diff --git a/packages/react-list/config/tests.js b/packages/react-list/config/tests.js
index 3882d3702ddc99..2e211ae9e21420 100644
--- a/packages/react-list/config/tests.js
+++ b/packages/react-list/config/tests.js
@@ -1,7 +1 @@
/** Jest test setup file. */
-
-const { configure } = require('enzyme');
-const Adapter = require('enzyme-adapter-react-16');
-
-// Configure enzyme.
-configure({ adapter: new Adapter() });
diff --git a/packages/react-window-provider/config/tests.js b/packages/react-window-provider/config/tests.js
index 3882d3702ddc99..2e211ae9e21420 100644
--- a/packages/react-window-provider/config/tests.js
+++ b/packages/react-window-provider/config/tests.js
@@ -1,7 +1 @@
/** Jest test setup file. */
-
-const { configure } = require('enzyme');
-const Adapter = require('enzyme-adapter-react-16');
-
-// Configure enzyme.
-configure({ adapter: new Adapter() });
diff --git a/packages/react-window-provider/src/WindowProvider.test.tsx b/packages/react-window-provider/src/WindowProvider.test.tsx
index b4276dfb793416..0e49133e4d2d6a 100644
--- a/packages/react-window-provider/src/WindowProvider.test.tsx
+++ b/packages/react-window-provider/src/WindowProvider.test.tsx
@@ -1,6 +1,6 @@
import * as React from 'react';
import { useWindow, useDocument, WindowProvider } from './WindowProvider';
-import { safeMount } from '@fluentui/test-utilities';
+import { render } from '@testing-library/react';
describe('WindowProvider', () => {
let lastWindow: Window | undefined;
@@ -14,7 +14,7 @@ describe('WindowProvider', () => {
};
it('can provide defaults for node', () => {
- safeMount();
+ render();
expect(lastWindow).toBe(window);
expect(lastDocument).toBe(document);
@@ -24,7 +24,7 @@ describe('WindowProvider', () => {
const mockDocument = ({} as unknown) as Document;
const mockWindow = ({ document: mockDocument } as unknown) as Window;
- safeMount(
+ render(
,
diff --git a/packages/theme/config/tests.js b/packages/theme/config/tests.js
index 3882d3702ddc99..2e211ae9e21420 100644
--- a/packages/theme/config/tests.js
+++ b/packages/theme/config/tests.js
@@ -1,7 +1 @@
/** Jest test setup file. */
-
-const { configure } = require('enzyme');
-const Adapter = require('enzyme-adapter-react-16');
-
-// Configure enzyme.
-configure({ adapter: new Adapter() });
diff --git a/scripts/jest/jest-resources.js b/scripts/jest/jest-resources.js
index a5a2219691b4a4..9c21cf68ab8d01 100644
--- a/scripts/jest/jest-resources.js
+++ b/scripts/jest/jest-resources.js
@@ -42,45 +42,49 @@ module.exports = {
testRegex: '(/__tests__/.*|\\.(test|spec))\\.js$',
}),
jestAliases,
- createConfig: customConfig =>
- merge(
- {
- moduleNameMapper: {
- 'ts-jest': resolve.sync('ts-jest'),
- '\\.(scss)$': path.resolve(__dirname, 'jest-style-mock.js'),
- KeyCodes: path.resolve(__dirname, 'jest-mock.js'),
- ...jestAliases(),
- },
+ /**
+ * @param {Partial} [customConfig]
+ */
+ createConfig: (customConfig = {}) => {
+ /** @type {import('@jest/types').Config.InitialOptions} */
+ const defaultConfig = {
+ moduleNameMapper: {
+ 'ts-jest': resolve.sync('ts-jest'),
+ '\\.(scss)$': path.resolve(__dirname, 'jest-style-mock.js'),
+ KeyCodes: path.resolve(__dirname, 'jest-mock.js'),
+ ...jestAliases(),
+ },
- transform: {
- '.(ts|tsx)': resolve.sync('ts-jest/dist'),
- },
+ transform: {
+ '.(ts|tsx)': resolve.sync('ts-jest/dist'),
+ },
- transformIgnorePatterns: ['/node_modules/', '/lib-commonjs/', '\\.js$'],
+ transformIgnorePatterns: ['/node_modules/', '/lib-commonjs/', '\\.js$'],
- reporters: [path.resolve(__dirname, './jest-reporter.js')],
+ reporters: [path.resolve(__dirname, './jest-reporter.js')],
- testRegex: '(/__tests__/.*|\\.(test|spec))\\.(ts|tsx)$',
- moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'],
+ testRegex: '(/__tests__/.*|\\.(test|spec))\\.(ts|tsx)$',
+ moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'],
- setupFiles: [path.resolve(__dirname, 'jest-setup.js')],
+ setupFiles: [path.resolve(__dirname, 'jest-setup.js')],
- moduleDirectories: [
- 'node_modules',
- path.resolve(packageRoot, 'node_modules'),
- path.resolve(__dirname, '../node_modules'),
- ],
+ moduleDirectories: [
+ 'node_modules',
+ path.resolve(packageRoot, 'node_modules'),
+ path.resolve(__dirname, '../node_modules'),
+ ],
- globals: {
- 'ts-jest': {
- diagnostics: false,
- },
+ globals: {
+ 'ts-jest': {
+ diagnostics: false,
},
+ },
- testURL: 'http://localhost',
+ testURL: 'http://localhost',
- watchPlugins: ['jest-watch-typeahead/filename', 'jest-watch-typeahead/testname'],
- },
- customConfig,
- ),
+ watchPlugins: ['jest-watch-typeahead/filename', 'jest-watch-typeahead/testname'],
+ };
+
+ return merge(defaultConfig, customConfig);
+ },
};
diff --git a/scripts/jest/jest-setup.js b/scripts/jest/jest-setup.js
index f58ab42efcf6f7..2746eb3135b53a 100644
--- a/scripts/jest/jest-setup.js
+++ b/scripts/jest/jest-setup.js
@@ -1,5 +1,7 @@
// @ts-check
+// Jest setup file for all v8 packages
+
// Mock requestAnimationFrame and cancelAnimationFrame for all packages
// @ts-ignore
global.requestAnimationFrame = callback => {
diff --git a/scripts/jest/setupTests.js b/scripts/jest/setupTests.js
index cb2445b48461b6..caadf05fc19d10 100644
--- a/scripts/jest/setupTests.js
+++ b/scripts/jest/setupTests.js
@@ -1,10 +1,8 @@
/**
- * Setup
+ * Setup for northstar/v0 packages (under packages/fluentui).
* This is the bootstrap code that is run before any tests, utils, mocks.
*/
-/* eslint-disable no-console */
-
const enzyme = require('enzyme');
const Adapter = require('enzyme-adapter-react-16');