Skip to content

Commit a780ce2

Browse files
joshblackjonrohan
andauthored
chore: update vitest, add node config and disable screenshots (#6159)
Co-authored-by: Jon Rohan <[email protected]>
1 parent 2b87ee2 commit a780ce2

File tree

8 files changed

+242
-176
lines changed

8 files changed

+242
-176
lines changed

package-lock.json

Lines changed: 153 additions & 100 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
"@primer/stylelint-config": "13.3.0",
6262
"@size-limit/preset-big-lib": "11.2.0",
6363
"@types/jest": "29.5.14",
64-
"@vitest/browser": "^3.1.2",
64+
"@vitest/browser": "^3.2.0",
6565
"eslint": "^9.25.1",
6666
"eslint-import-resolver-typescript": "3.7.0",
6767
"eslint-plugin-clsx": "^0.0.10",
@@ -89,7 +89,7 @@
8989
"typed-css-modules": "0.9.1",
9090
"typescript": "^5.8.2",
9191
"typescript-eslint": "^8.33.0",
92-
"vitest": "^3.1.2"
92+
"vitest": "^3.2.0"
9393
},
9494
"optionalDependencies": {
9595
"@rollup/rollup-linux-x64-gnu": "^4.41.1"

packages/react/jest.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ module.exports = {
1515
setupFilesAfterEnv: ['<rootDir>/src/utils/test-matchers.tsx', '<rootDir>/src/utils/test-deprecations.tsx'],
1616
testMatch: ['<rootDir>/**/*.test.[jt]s?(x)', '!**/*.types.test.[jt]s?(x)'],
1717
modulePathIgnorePatterns: [
18+
'<rootDir>/src/__tests__/exports.test.ts',
1819
'<rootDir>/src/ActionBar/',
1920
'<rootDir>/src/ActionList/',
2021
'<rootDir>/src/AnchoredOverlay/',

packages/react/src/__tests__/__snapshots__/exports.test.ts.snap

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
// Jest Snapshot v1, https://goo.gl/fbAQLP
1+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
22

3-
exports[`@primer/react should not update exports without a semver change 1`] = `
3+
exports[`@primer/react > should not update exports without a semver change 1`] = `
44
[
55
"ActionBar",
66
"type ActionBarProps",
@@ -219,7 +219,7 @@ exports[`@primer/react should not update exports without a semver change 1`] = `
219219
]
220220
`;
221221

222-
exports[`@primer/react/deprecated should not update exports without a semver change 1`] = `
222+
exports[`@primer/react/deprecated > should not update exports without a semver change 1`] = `
223223
[
224224
"ActionList",
225225
"type ActionListGroupedListProps",
@@ -249,7 +249,7 @@ exports[`@primer/react/deprecated should not update exports without a semver cha
249249
]
250250
`;
251251

252-
exports[`@primer/react/experimental should not update exports without a semver change 1`] = `
252+
exports[`@primer/react/experimental > should not update exports without a semver change 1`] = `
253253
[
254254
"ActionBar",
255255
"type ActionBarProps",

packages/react/src/__tests__/exports.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {existsSync} from 'node:fs'
22
import fs from 'node:fs/promises'
33
import path from 'node:path'
4+
import {beforeAll, describe, expect, it} from 'vitest'
45
// eslint-disable-next-line import/no-namespace
56
import * as parser from '@babel/parser'
67
import {traverse} from '@babel/core'
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
import {defineConfig} from 'vitest/config'
2+
import react from '@vitejs/plugin-react'
3+
4+
export default defineConfig({
5+
plugins: [react()],
6+
define: {
7+
__DEV__: true,
8+
},
9+
test: {
10+
name: '@primer/react',
11+
exclude: [
12+
'**/node_modules/**',
13+
'**/dist/**',
14+
'**/lib-esm/**',
15+
'**/lib/**',
16+
'**/generated/**',
17+
'**/*.figma.tsx',
18+
'**/*.types.test.tsx',
19+
],
20+
include: [
21+
'src/ActionBar/**/*.test.?(c|m)[jt]s?(x)',
22+
'src/ActionList/**/*.test.?(c|m)[jt]s?(x)',
23+
'src/AnchoredOverlay/**/*.test.?(c|m)[jt]s?(x)',
24+
'src/Banner/**/*.test.?(c|m)[jt]s?(x)',
25+
'src/Blankslate/**/*.test.?(c|m)[jt]s?(x)',
26+
'src/BranchName/**/*.test.?(c|m)[jt]s?(x)',
27+
'src/Breadcrumbs/**/*.test.?(c|m)[jt]s?(x)',
28+
'src/ButtonGroup/**/*.test.?(c|m)[jt]s?(x)',
29+
'src/CheckboxGroup/**/*.test.?(c|m)[jt]s?(x)',
30+
'src/CircleBadge/**/*.test.?(c|m)[jt]s?(x)',
31+
'src/CircleOcticon/**/*.test.?(c|m)[jt]s?(x)',
32+
'src/DataTable/**/*.test.?(c|m)[jt]s?(x)',
33+
'src/FeatureFlags/**/*.test.?(c|m)[jt]s?(x)',
34+
'src/NavList/**/*.test.?(c|m)[jt]s?(x)',
35+
'src/ProgressBar/**/*.test.?(c|m)[jt]s?(x)',
36+
'src/Radio/**/*.test.?(c|m)[jt]s?(x)',
37+
'src/RadioGroup/**/*.test.?(c|m)[jt]s?(x)',
38+
'src/RelativeTime/**/*.test.?(c|m)[jt]s?(x)',
39+
'src/ScrollableRegion/**/*.test.?(c|m)[jt]s?(x)',
40+
'src/Select/**/*.test.?(c|m)[jt]s?(x)',
41+
'src/Skeleton/**/*.test.?(c|m)[jt]s?(x)',
42+
'src/Spinner/**/*.test.?(c|m)[jt]s?(x)',
43+
'src/Stack/**/*.test.?(c|m)[jt]s?(x)',
44+
'src/StateLabel/**/*.test.?(c|m)[jt]s?(x)',
45+
'src/SubNav/**/*.test.?(c|m)[jt]s?(x)',
46+
'src/TabNav/**/*.test.?(c|m)[jt]s?(x)',
47+
'src/TextInputWithTokens/**/*.test.?(c|m)[jt]s?(x)',
48+
'src/Textarea/**/*.test.?(c|m)[jt]s?(x)',
49+
'src/Timeline/**/*.test.?(c|m)[jt]s?(x)',
50+
'src/ToggleSwitch/**/*.test.?(c|m)[jt]s?(x)',
51+
'src/Tooltip/**/*.test.?(c|m)[jt]s?(x)',
52+
'src/TooltipV2/**/*.test.?(c|m)[jt]s?(x)',
53+
'src/Truncate/**/*.test.?(c|m)[jt]s?(x)',
54+
'src/UnderlineNav/**/*.test.?(c|m)[jt]s?(x)',
55+
'src/hooks/**/*.test.?(c|m)[jt]s?(x)',
56+
'src/live-region/**/*.test.?(c|m)[jt]s?(x)',
57+
'src/utils/__tests__/invariant.test.?(c|m)[jt]s?(x)',
58+
'src/utils/__tests__/warning.test.?(c|m)[jt]s?(x)',
59+
],
60+
setupFiles: ['config/vitest/setup.ts'],
61+
css: {
62+
include: [/.+/],
63+
},
64+
browser: {
65+
provider: 'playwright',
66+
enabled: true,
67+
headless: process.env.DEBUG_BROWSER_TESTS === 'true' ? false : true,
68+
instances: [
69+
{
70+
browser: 'chromium',
71+
},
72+
],
73+
screenshotFailures: false,
74+
},
75+
},
76+
})

packages/react/vitest.config.mts

Lines changed: 4 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,9 @@
11
import {defineConfig} from 'vitest/config'
2-
import react from '@vitejs/plugin-react'
32

43
export default defineConfig({
5-
plugins: [react()],
6-
define: {
7-
__DEV__: true,
8-
},
94
test: {
10-
exclude: [
11-
'**/node_modules/**',
12-
'**/dist/**',
13-
'**/lib-esm/**',
14-
'**/lib/**',
15-
'**/generated/**',
16-
'**/*.figma.tsx',
17-
'**/*.types.test.tsx',
18-
],
19-
include: [
20-
'src/ActionBar/**/*.test.?(c|m)[jt]s?(x)',
21-
'src/ActionList/**/*.test.?(c|m)[jt]s?(x)',
22-
'src/AnchoredOverlay/**/*.test.?(c|m)[jt]s?(x)',
23-
'src/Banner/**/*.test.?(c|m)[jt]s?(x)',
24-
'src/Blankslate/**/*.test.?(c|m)[jt]s?(x)',
25-
'src/BranchName/**/*.test.?(c|m)[jt]s?(x)',
26-
'src/Breadcrumbs/**/*.test.?(c|m)[jt]s?(x)',
27-
'src/ButtonGroup/**/*.test.?(c|m)[jt]s?(x)',
28-
'src/CheckboxGroup/**/*.test.?(c|m)[jt]s?(x)',
29-
'src/CircleBadge/**/*.test.?(c|m)[jt]s?(x)',
30-
'src/CircleOcticon/**/*.test.?(c|m)[jt]s?(x)',
31-
'src/DataTable/**/*.test.?(c|m)[jt]s?(x)',
32-
'src/FeatureFlags/**/*.test.?(c|m)[jt]s?(x)',
33-
'src/NavList/**/*.test.?(c|m)[jt]s?(x)',
34-
'src/ProgressBar/**/*.test.?(c|m)[jt]s?(x)',
35-
'src/Radio/**/*.test.?(c|m)[jt]s?(x)',
36-
'src/RadioGroup/**/*.test.?(c|m)[jt]s?(x)',
37-
'src/RelativeTime/**/*.test.?(c|m)[jt]s?(x)',
38-
'src/ScrollableRegion/**/*.test.?(c|m)[jt]s?(x)',
39-
'src/Select/**/*.test.?(c|m)[jt]s?(x)',
40-
'src/Skeleton/**/*.test.?(c|m)[jt]s?(x)',
41-
'src/Spinner/**/*.test.?(c|m)[jt]s?(x)',
42-
'src/Stack/**/*.test.?(c|m)[jt]s?(x)',
43-
'src/StateLabel/**/*.test.?(c|m)[jt]s?(x)',
44-
'src/SubNav/**/*.test.?(c|m)[jt]s?(x)',
45-
'src/TabNav/**/*.test.?(c|m)[jt]s?(x)',
46-
'src/TextInputWithTokens/**/*.test.?(c|m)[jt]s?(x)',
47-
'src/Textarea/**/*.test.?(c|m)[jt]s?(x)',
48-
'src/Timeline/**/*.test.?(c|m)[jt]s?(x)',
49-
'src/ToggleSwitch/**/*.test.?(c|m)[jt]s?(x)',
50-
'src/Tooltip/**/*.test.?(c|m)[jt]s?(x)',
51-
'src/TooltipV2/**/*.test.?(c|m)[jt]s?(x)',
52-
'src/Truncate/**/*.test.?(c|m)[jt]s?(x)',
53-
'src/UnderlineNav/**/*.test.?(c|m)[jt]s?(x)',
54-
'src/hooks/**/*.test.?(c|m)[jt]s?(x)',
55-
'src/live-region/**/*.test.?(c|m)[jt]s?(x)',
56-
'src/utils/__tests__/invariant.test.?(c|m)[jt]s?(x)',
57-
'src/utils/__tests__/warning.test.?(c|m)[jt]s?(x)',
58-
],
59-
setupFiles: ['config/vitest/setup.ts'],
60-
css: {
61-
include: [/.+/],
62-
},
63-
browser: {
64-
provider: 'playwright',
65-
enabled: true,
66-
headless: process.env.DEBUG_BROWSER_TESTS === 'true' ? false : true,
67-
instances: [
68-
{
69-
browser: 'chromium',
70-
},
71-
],
72-
},
5+
name: '@primer/react (node)',
6+
include: ['src/__tests__/exports.test.ts'],
7+
environment: 'node',
738
},
74-
})
9+
})

vitest.config.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ import {defineConfig} from 'vitest/config'
22

33
export default defineConfig({
44
test: {
5-
workspace: ['packages/*/vitest.config.ts', 'packages/*/vitest.config.mts'],
5+
projects: ['packages/*/vitest.config.ts', 'packages/*/vitest.config.mts', 'packages/*/vitest.config.browser.mts'],
66
},
77
})

0 commit comments

Comments
 (0)