Skip to content

Commit 213b5e3

Browse files
authored
[code-infra] Package test utils (#41177)
1 parent 384e5e4 commit 213b5e3

File tree

400 files changed

+692
-583
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

400 files changed

+692
-583
lines changed

.codesandbox/ci.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,16 @@
2222
"packages/mui-types",
2323
"packages/mui-utils",
2424
"packages-internal/docs-utils",
25-
"packages-internal/scripts"
25+
"packages-internal/scripts",
26+
"packages-internal/test-utils"
2627
],
2728
"publishDirectory": {
2829
"@mui/base": "packages/mui-base/build",
2930
"@mui/codemod": "packages/mui-codemod/build",
3031
"@mui/core-downloads-tracker": "packages/mui-core-downloads-tracker/build",
3132
"@mui/docs": "packages/mui-docs/build",
3233
"@mui/icons-material": "packages/mui-icons-material/build",
34+
"@mui/internal-test-utils": "packages-internal/test-utils",
3335
"@mui/internal-babel-macros": "packages/mui-babel-macros",
3436
"@mui/internal-docs-utils": "packages-internal/docs-utils",
3537
"@mui/internal-markdown": "packages/markdown",

.mocharc.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ module.exports = {
1010
recursive: true,
1111
timeout: (process.env.CIRCLECI === 'true' ? 5 : 2) * 1000, // Circle CI has low-performance CPUs.
1212
reporter: 'dot',
13-
require: ['@mui-internal/test-utils/setupBabel', '@mui-internal/test-utils/setupJSDOM'],
13+
require: ['@mui/internal-test-utils/setupBabel', '@mui/internal-test-utils/setupJSDOM'],
1414
'watch-ignore': [
1515
// default
1616
'.git',

docs/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@
115115
"@babel/preset-typescript": "^7.24.6",
116116
"@mui/internal-docs-utils": "workspace:^",
117117
"@mui/internal-scripts": "workspace:^",
118-
"@mui-internal/test-utils": "workspace:^",
118+
"@mui/internal-test-utils": "workspace:^",
119119
"@types/autosuggest-highlight": "^3.2.3",
120120
"@types/chai": "^4.3.16",
121121
"@types/css-mediaquery": "^0.1.4",

docs/src/modules/components/HighlightedCode.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as React from 'react';
22
import { expect } from 'chai';
3-
import { createRenderer } from '@mui-internal/test-utils';
3+
import { createRenderer } from '@mui/internal-test-utils';
44
import { ThemeProvider, createTheme } from '@mui/material/styles';
55
import { getDesignTokens } from '@mui/docs/branding';
66
import { HighlightedCode } from '@mui/docs/HighlightedCode';

package.json

+72-14
Original file line numberDiff line numberDiff line change
@@ -54,35 +54,44 @@
5454
"test": "node scripts/test.mjs",
5555
"tc": "node test/cli.js",
5656
"test:extended": "pnpm eslint && pnpm typescript && pnpm test:coverage",
57-
"test:coverage": "cross-env NODE_ENV=test BABEL_ENV=coverage nyc --reporter=text mocha 'packages/**/*.test.{js,ts,tsx}' 'docs/**/*.test.{js,ts,tsx}'",
58-
"test:coverage:ci": "cross-env NODE_ENV=test BABEL_ENV=coverage nyc --reporter=lcov mocha 'packages/**/*.test.{js,ts,tsx}' 'docs/**/*.test.{js,ts,tsx}'",
59-
"test:coverage:html": "cross-env NODE_ENV=test BABEL_ENV=coverage nyc --reporter=html mocha 'packages/**/*.test.{js,ts,tsx}' 'docs/**/*.test.{js,ts,tsx}'",
57+
"test:coverage": "nx run nx_test_coverage",
58+
"test:coverage:ci": "nx run nx_test_coverage_ci",
59+
"test:coverage:html": "nx run nx_test_coverage_html",
6060
"test:e2e": "cross-env NODE_ENV=production pnpm test:e2e:build && concurrently --success first --kill-others \"pnpm test:e2e:run\" \"pnpm test:e2e:server\"",
61-
"test:e2e:build": "webpack --config test/e2e/webpack.config.js",
61+
"test:e2e:build": "nx run nx_test_e2e_build",
6262
"test:e2e:dev": "concurrently \"pnpm test:e2e:build --watch\" \"pnpm test:e2e:server\"",
63-
"test:e2e:run": "mocha --config test/e2e/.mocharc.js 'test/e2e/**/*.test.{js,ts,tsx}'",
63+
"test:e2e:run": "nx run nx_test_e2e_run",
6464
"test:e2e:server": "serve test/e2e -p 5001",
6565
"test:e2e-website": "playwright test test/e2e-website --config test/e2e-website/playwright.config.ts",
6666
"test:e2e-website:dev": "cross-env PLAYWRIGHT_TEST_BASE_URL=http://localhost:3000 playwright test test/e2e-website --config test/e2e-website/playwright.config.ts",
67-
"test:karma": "cross-env NODE_ENV=test karma start test/karma.conf.js",
68-
"test:karma:profile": "cross-env NODE_ENV=test karma start test/karma.conf.profile.js",
67+
"test:karma": "nx run nx_test_karma",
68+
"test:karma:profile": "nx run nx_test_karma_profile",
6969
"test:regressions": "cross-env NODE_ENV=production pnpm test:regressions:build && concurrently --success first --kill-others \"pnpm test:regressions:run\" \"pnpm test:regressions:server\"",
7070
"test:regressions:build": "webpack --config test/regressions/webpack.config.js",
7171
"test:regressions:dev": "concurrently \"pnpm test:regressions:build --watch\" \"pnpm test:regressions:server\"",
72-
"test:regressions:run": "mocha --config test/regressions/.mocharc.js --delay 'test/regressions/**/*.test.js'",
72+
"test:regressions:run": "nx run nx_test_regressions_run",
7373
"test:regressions:server": "serve test/regressions -p 5001",
74-
"test:unit": "cross-env NODE_ENV=test mocha 'packages/**/*.test.{js,ts,tsx}' 'docs/**/*.test.{js,ts,tsx}'",
74+
"test:unit": "nx run nx_test_unit",
7575
"test:argos": "node ./scripts/pushArgos.mjs",
7676
"typescript": "lerna run --no-bail --parallel typescript",
7777
"typescript:ci": "lerna run --concurrency 3 --no-bail --no-sort typescript",
7878
"validate-declarations": "tsx scripts/validateTypescriptDeclarations.mts",
7979
"generate-codeowners": "node scripts/generateCodeowners.mjs",
80-
"canary:release": "tsx ./scripts/canaryRelease.mts"
80+
"canary:release": "tsx ./scripts/canaryRelease.mts",
81+
"nx_test_coverage_ci": "cross-env NODE_ENV=test BABEL_ENV=coverage nyc --reporter=lcov mocha 'packages/**/*.test.{js,ts,tsx}' 'docs/**/*.test.{js,ts,tsx}'",
82+
"nx_test_coverage_html": "cross-env NODE_ENV=test BABEL_ENV=coverage nyc --reporter=html mocha 'packages/**/*.test.{js,ts,tsx}' 'docs/**/*.test.{js,ts,tsx}'",
83+
"nx_test_coverage": "cross-env NODE_ENV=test BABEL_ENV=coverage nyc --reporter=text mocha 'packages/**/*.test.{js,ts,tsx}' 'docs/**/*.test.{js,ts,tsx}'",
84+
"nx_test_e2e_build": "webpack --config test/e2e/webpack.config.js",
85+
"nx_test_e2e_run": "mocha --config test/e2e/.mocharc.js 'test/e2e/**/*.test.{js,ts,tsx}'",
86+
"nx_test_karma_profile": "cross-env NODE_ENV=test karma start test/karma.conf.profile.js",
87+
"nx_test_karma": "cross-env NODE_ENV=test karma start test/karma.conf.js",
88+
"nx_test_regressions_run": "mocha --config test/regressions/.mocharc.js --delay 'test/regressions/**/*.test.js'",
89+
"nx_test_unit": "cross-env NODE_ENV=test mocha 'packages/**/*.test.{js,ts,tsx}' 'docs/**/*.test.{js,ts,tsx}'"
8190
},
8291
"dependencies": {
8392
"@googleapis/sheets": "^7.0.0",
84-
"@slack/bolt": "^3.18.0",
8593
"@netlify/functions": "^2.7.0",
94+
"@slack/bolt": "^3.18.0",
8695
"execa": "^8.0.1",
8796
"google-auth-library": "^9.10.0"
8897
},
@@ -98,11 +107,11 @@
98107
"@babel/preset-typescript": "^7.24.6",
99108
"@babel/register": "^7.24.6",
100109
"@mnajdova/enzyme-adapter-react-18": "^0.2.0",
101-
"@mui/internal-docs-utils": "workspace:^",
102-
"@mui/internal-scripts": "workspace:^",
103110
"@mui-internal/api-docs-builder": "workspace:^",
104111
"@mui-internal/api-docs-builder-core": "workspace:^",
105-
"@mui-internal/test-utils": "workspace:^",
112+
"@mui/internal-docs-utils": "workspace:^",
113+
"@mui/internal-scripts": "workspace:^",
114+
"@mui/internal-test-utils": "workspace:^",
106115
"@mui/joy": "workspace:*",
107116
"@mui/material": "workspace:^",
108117
"@mui/utils": "workspace:^",
@@ -213,5 +222,54 @@
213222
],
214223
"sourceMap": false,
215224
"instrument": false
225+
},
226+
"nx": {
227+
"targets": {
228+
"nx_test_unit": {
229+
"dependsOn": [
230+
"@mui/internal-test-utils:build"
231+
]
232+
},
233+
"nx_test_karma": {
234+
"dependsOn": [
235+
"@mui/internal-test-utils:build"
236+
]
237+
},
238+
"nx_test_karma_profile": {
239+
"dependsOn": [
240+
"@mui/internal-test-utils:build"
241+
]
242+
},
243+
"nx_test_coverage": {
244+
"dependsOn": [
245+
"@mui/internal-test-utils:build"
246+
]
247+
},
248+
"nx_test_coverage_ci": {
249+
"dependsOn": [
250+
"@mui/internal-test-utils:build"
251+
]
252+
},
253+
"nx_test_coverage_html": {
254+
"dependsOn": [
255+
"@mui/internal-test-utils:build"
256+
]
257+
},
258+
"nx_test_regressions_run": {
259+
"dependsOn": [
260+
"@mui/internal-test-utils:build"
261+
]
262+
},
263+
"nx_test_e2e_build": {
264+
"dependsOn": [
265+
"@mui/internal-test-utils:build"
266+
]
267+
},
268+
"nx_test_e2e_run": {
269+
"dependsOn": [
270+
"@mui/internal-test-utils:build"
271+
]
272+
}
273+
}
216274
}
217275
}
+9

packages/test-utils/package.json packages-internal/test-utils/package.json

+32-16
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,34 @@
11
{
2-
"name": "@mui-internal/test-utils",
2+
"name": "@mui/internal-test-utils",
33
"version": "1.0.0",
4-
"private": true,
5-
"scripts": {
6-
"typescript": "tsc -p tsconfig.json"
7-
},
8-
"main": "src/index.ts",
4+
"author": "MUI Team",
5+
"description": "Utilities for MUI tests. This is an internal package not meant for general use.",
6+
"main": "./build/index.js",
97
"exports": {
10-
".": "./src/index.ts",
11-
"./init": "./src/init.js",
12-
"./initMatchers": "./src/initMatchers.ts",
13-
"./initPlaywrightMatchers": "./src/initPlaywrightMatchers.ts",
14-
"./KarmaReporterReactProfiler": "./src/KarmaReporterReactProfiler.js",
15-
"./setupBabel": "./src/setupBabel.js",
16-
"./setupBabelPlaywright": "./src/setupBabelPlaywright.js",
17-
"./setupJSDOM": "./src/setupJSDOM.js",
18-
"./setupKarma": "./src/setupKarma.js"
8+
".": "./build/index.js",
9+
"./createDescribe": "./build/createDescribe.js",
10+
"./createRenderer": "./build/createRenderer.js",
11+
"./init": "./build/init.js",
12+
"./initMatchers": {
13+
"types": "./build/initMatchers.d.ts",
14+
"default": "./build/initMatchers.js"
15+
},
16+
"./initPlaywrightMatchers": {
17+
"types": "./build/initPlaywrightMatchers.d.ts",
18+
"default": "./build/initPlaywrightMatchers.js"
19+
},
20+
"./KarmaReporterReactProfiler": "./build/KarmaReporterReactProfiler.js",
21+
"./setupBabel": "./build/setupBabel.js",
22+
"./setupBabelPlaywright": "./build/setupBabelPlaywright.js",
23+
"./setupJSDOM": "./build/setupJSDOM.js",
24+
"./setupKarma": "./build/setupKarma.js"
25+
},
26+
"scripts": {
27+
"prebuild": "rimraf ./build",
28+
"build": "tsc -b tsconfig.build.json",
29+
"typescript": "tsc -b tsconfig.json",
30+
"release:publish": "pnpm publish --tag latest",
31+
"release:publish:dry-run": "pnpm publish --tag latest --registry=\"http://localhost:4873/\""
1932
},
2033
"dependencies": {
2134
"@babel/plugin-transform-modules-commonjs": "^7.24.6",
@@ -39,7 +52,7 @@
3952
"playwright": "^1.44.0",
4053
"prop-types": "^15.8.1",
4154
"react-test-renderer": "^18.2.0",
42-
"sinon": "^15.2.0"
55+
"sinon": "^16.1.3"
4356
},
4457
"devDependencies": {
4558
"@types/chai": "^4.3.16",
@@ -56,5 +69,8 @@
5669
"peerDependencies": {
5770
"react": "^18.2.0",
5871
"react-dom": "^18.2.0"
72+
},
73+
"publishConfig": {
74+
"access": "public"
5975
}
6076
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"extends": "./tsconfig.json",
3+
"compilerOptions": {
4+
"rootDir": "./src",
5+
"outDir": "./build",
6+
"declaration": true,
7+
"declarationMap": true,
8+
"sourceMap": true,
9+
"noEmit": false,
10+
"composite": true,
11+
"tsBuildInfoFile": "./build/.tsbuildinfo",
12+
"target": "ES2020",
13+
"module": "commonjs",
14+
"types": ["node"],
15+
"allowJs": true
16+
}
17+
}
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"compilerOptions": {
3+
"noEmit": true,
4+
"moduleResolution": "node",
5+
"types": ["node"],
6+
"strict": true,
7+
"esModuleInterop": true,
8+
"isolatedModules": true,
9+
"jsx": "react"
10+
},
11+
"include": ["./src/**/*"]
12+
}

packages/api-docs-builder-core/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"@types/node": "^18.19.33",
2121
"@types/sinon": "^17.0.3",
2222
"chai": "^4.4.1",
23-
"sinon": "^15.2.0",
23+
"sinon": "^16.1.3",
2424
"typescript": "^5.4.5"
2525
}
2626
}

packages/api-docs-builder/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,6 @@
3636
"@types/react-docgen": "workspace:*",
3737
"@types/sinon": "^17.0.3",
3838
"chai": "^4.4.1",
39-
"sinon": "^15.2.0"
39+
"sinon": "^16.1.3"
4040
}
4141
}

packages/eslint-plugin-material-ui/src/rules/disallow-active-elements-as-key-event-target.test.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ const ruleTester = new eslint.RuleTester({
77
});
88
ruleTester.run('disallow-active-element-as-key-event-target', rule, {
99
valid: [
10-
"import { fireEvent } from '@mui-internal/test-utils';\nfireEvent.keyDown(getByRole('button'), { key: ' ' })",
11-
"import { fireEvent } from '@mui-internal/test-utils';\nfireEvent.keyDown(document.body, { key: 'Esc' })",
12-
"import { fireEvent } from '@mui-internal/test-utils';\nfireEvent.keyUp(document.body, { key: 'Tab' })",
10+
"import { fireEvent } from '@mui/internal-test-utils';\nfireEvent.keyDown(getByRole('button'), { key: ' ' })",
11+
"import { fireEvent } from '@mui/internal-test-utils';\nfireEvent.keyDown(document.body, { key: 'Esc' })",
12+
"import { fireEvent } from '@mui/internal-test-utils';\nfireEvent.keyUp(document.body, { key: 'Tab' })",
1313
],
1414
invalid: [
1515
{
16-
code: "import { fireEvent } from '@mui-internal/test-utils';\nfireEvent.keyUp(document.activeElement, { key: 'LeftArrow' })",
16+
code: "import { fireEvent } from '@mui/internal-test-utils';\nfireEvent.keyUp(document.activeElement, { key: 'LeftArrow' })",
1717
errors: [
1818
{
1919
message:
@@ -23,7 +23,7 @@ ruleTester.run('disallow-active-element-as-key-event-target', rule, {
2323
],
2424
},
2525
{
26-
code: "import { fireEvent } from '@mui-internal/test-utils';\nfireEvent.keyDown(document.activeElement, { key: 'DownArrow' })",
26+
code: "import { fireEvent } from '@mui/internal-test-utils';\nfireEvent.keyDown(document.activeElement, { key: 'DownArrow' })",
2727
errors: [
2828
{
2929
message:
@@ -54,7 +54,7 @@ ruleTester.run('disallow-active-element-as-key-event-target', rule, {
5454
},
5555
{
5656
// test non-null assertion operator
57-
code: "import { fireEvent } from '@mui-internal/test-utils';\nfireEvent.keyUp(document.activeElement!, { key: 'LeftArrow' })",
57+
code: "import { fireEvent } from '@mui/internal-test-utils';\nfireEvent.keyUp(document.activeElement!, { key: 'LeftArrow' })",
5858
errors: [
5959
{
6060
message:

packages/mui-base/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@
4949
"prop-types": "^15.8.1"
5050
},
5151
"devDependencies": {
52-
"@mui-internal/test-utils": "workspace:^",
5352
"@mui/internal-babel-macros": "workspace:^",
53+
"@mui/internal-test-utils": "workspace:^",
5454
"@mui/types": "workspace:^",
5555
"@testing-library/react": "^15.0.7",
5656
"@testing-library/user-event": "^14.5.2",
@@ -64,7 +64,7 @@
6464
"lodash": "^4.17.21",
6565
"react": "^18.2.0",
6666
"react-dom": "^18.2.0",
67-
"sinon": "^15.2.0"
67+
"sinon": "^16.1.3"
6868
},
6969
"peerDependencies": {
7070
"@types/react": "^17.0.0 || ^18.0.0",

packages/mui-base/src/Badge/Badge.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as React from 'react';
2-
import { createRenderer, createMount } from '@mui-internal/test-utils';
2+
import { createRenderer, createMount } from '@mui/internal-test-utils';
33
import { Badge, badgeClasses as classes } from '@mui/base/Badge';
44
import { describeConformanceUnstyled } from '../../test/describeConformanceUnstyled';
55

packages/mui-base/src/Button/Button.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as React from 'react';
2-
import { act, createMount, createRenderer, fireEvent } from '@mui-internal/test-utils';
2+
import { act, createMount, createRenderer, fireEvent } from '@mui/internal-test-utils';
33
import { expect } from 'chai';
44
import { spy } from 'sinon';
55
import { Button, buttonClasses } from '@mui/base/Button';

packages/mui-base/src/ClickAwayListener/ClickAwayListener.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
fireEvent,
99
fireDiscreteEvent,
1010
screen,
11-
} from '@mui-internal/test-utils';
11+
} from '@mui/internal-test-utils';
1212
import { Portal } from '@mui/base/Portal';
1313
import { ClickAwayListener } from '@mui/base/ClickAwayListener';
1414

packages/mui-base/src/Dropdown/Dropdown.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
flushMicrotasks,
77
MuiRenderResult,
88
RenderOptions,
9-
} from '@mui-internal/test-utils';
9+
} from '@mui/internal-test-utils';
1010
import { Dropdown } from '@mui/base/Dropdown';
1111
import { DropdownContext } from '@mui/base/useDropdown';
1212
import { MenuButton } from '@mui/base/MenuButton';

packages/mui-base/src/FocusTrap/FocusTrap.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as React from 'react';
22
import * as ReactDOM from 'react-dom';
33
import { expect } from 'chai';
4-
import { act, createRenderer, screen } from '@mui-internal/test-utils';
4+
import { act, createRenderer, screen } from '@mui/internal-test-utils';
55
import { FocusTrap } from '@mui/base/FocusTrap';
66
import { Portal } from '@mui/base/Portal';
77

0 commit comments

Comments
 (0)