Skip to content

Commit 24618f9

Browse files
committed
chore(test): move jest config to @repo/test-config/jest
1 parent 8938d6e commit 24618f9

19 files changed

+126
-43
lines changed

package.json

+2-3
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,14 @@
9797
},
9898
"prettier": "@sanity/prettier-config",
9999
"devDependencies": {
100-
"@babel/plugin-proposal-class-properties": "^7.18.6",
101100
"@babel/preset-env": "^7.24.7",
102101
"@babel/preset-react": "^7.24.7",
103102
"@babel/preset-typescript": "^7.24.7",
104103
"@google-cloud/storage": "^7.11.0",
105-
"@jest/globals": "^29.7.0",
106104
"@playwright/test": "1.44.1",
105+
"@repo/dev-aliases": "workspace:*",
107106
"@repo/package.config": "workspace:*",
107+
"@repo/test-config": "workspace:*",
108108
"@repo/tsconfig": "workspace:*",
109109
"@sanity/client": "^6.21.3",
110110
"@sanity/eslint-config-i18n": "1.0.0",
@@ -152,7 +152,6 @@
152152
"globby": "^10.0.0",
153153
"husky": "^9.0.11",
154154
"jest": "^29.7.0",
155-
"jest-environment-jsdom": "^29.7.0",
156155
"js-yaml": "^4.1.0",
157156
"lerna": "^8.1.8",
158157
"lint-staged": "^12.1.2",

test/config.cjs renamed to packages/@repo/test-config/jest/createJestConfig.mjs

+25-15
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,29 @@
11
/* eslint-disable tsdoc/syntax */
22

3-
const path = require('node:path')
4-
const {escapeRegExp, omit} = require('lodash')
5-
const devAliases = require('../dev/aliases.cjs')
3+
import devAliases from '@repo/dev-aliases'
4+
5+
import path from 'node:path'
6+
import {escapeRegExp, omit} from 'lodash-es'
7+
import {resolveDirName} from './resolveDirName.mjs'
8+
9+
const dirname = resolveDirName(import.meta.url)
610

711
/** Regex for matching file extensions. */
812
const RE_EXT = /\.[0-9a-z]+$/i
913

1014
/** Path to the root of the Sanity monorepo. */
11-
const ROOT_PATH = path.resolve(__dirname, '..')
15+
const ROOT_PATH = path.resolve(dirname, '..', '..', '..', '..')
16+
17+
const jestAliases = Object.fromEntries(
18+
Object.entries(devAliases).map(([packageName, aliasPath]) => [
19+
packageName,
20+
path.join('./packages', aliasPath),
21+
]),
22+
)
1223

1324
/** The default module name mapper (aka. aliases) for jest tests in the Sanity monorepo. */
1425
const defaultModuleNameMapper = resolveAliasPaths({
15-
...aliasesToModuleNameWrapper(devAliases),
26+
...aliasesToModuleNameWrapper(jestAliases),
1627
'.*\\.module\\.css$': './test/mocks/emptyObject',
1728
'.*\\.css$': './test/mocks/undefined',
1829
})
@@ -23,7 +34,7 @@ const defaultModuleNameMapper = resolveAliasPaths({
2334
* @param {import('jest').Config} config - Initial Jest configuration options.
2435
* @returns {import('jest').Config} The resulting Jest configuration options.
2536
*/
26-
exports.createJestConfig = function createJestConfig(config = {}) {
37+
export function createJestConfig(config = {}) {
2738
const {
2839
testMatch = [],
2940
setupFiles = [],
@@ -57,9 +68,9 @@ exports.createJestConfig = function createJestConfig(config = {}) {
5768
'<rootDir>/coverage/',
5869
'<rootDir>/lib/',
5970
],
60-
resolver: path.resolve(__dirname, './resolver.cjs'),
61-
testEnvironment: path.resolve(__dirname, './jsdom.jest.env.ts'),
62-
setupFiles: [...setupFiles, path.resolve(__dirname, './setup.ts')],
71+
resolver: path.resolve(dirname, './resolver.cjs'),
72+
testEnvironment: path.resolve(dirname, './jsdom.jest.env.ts'),
73+
setupFiles: [...setupFiles, path.resolve(dirname, './setup.ts')],
6374
// testEnvironment: 'jsdom',
6475
testEnvironmentOptions: {
6576
url: 'http://localhost:3333',
@@ -81,18 +92,17 @@ exports.createJestConfig = function createJestConfig(config = {}) {
8192
'@babel/preset-env',
8293
{
8394
targets: {
84-
node: '14',
85-
chrome: '61',
86-
safari: '11.3',
87-
firefox: '60',
88-
edge: '79',
95+
node: '18',
96+
safari: '16',
97+
chrome: '110',
98+
firefox: '110',
99+
edge: '110',
89100
},
90101
},
91102
],
92103
'@babel/preset-typescript',
93104
['@babel/preset-react', {runtime: 'automatic'}],
94105
],
95-
plugins: ['@babel/plugin-proposal-class-properties'],
96106
},
97107
],
98108
},
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export {createJestConfig} from './createJestConfig.mjs'
2+
export {resolveDirName} from './resolveDirName.mjs'
3+
export {readPackageName} from './readPackageName.mjs'

test/jsdom.jest.env.ts renamed to packages/@repo/test-config/jest/jsdom.jest.env.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ export default class JSDOMEnvironmentWithDomRange extends JSDOMEnvironment {
44
public async setup(): Promise<void> {
55
await super.setup()
66
if (typeof this.global.TextEncoder === 'undefined') {
7-
const {TextEncoder, TextDecoder} = require('util')
7+
const {TextEncoder, TextDecoder} = require('node:util')
88
this.global.TextEncoder = TextEncoder
99
this.global.TextDecoder = TextDecoder
1010
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import fs from 'node:fs'
2+
import path from 'node:path'
3+
import {resolveDirName} from './resolveDirName.mjs'
4+
5+
export function readPackageName(dirNameUrl) {
6+
return JSON.parse(fs.readFileSync(path.join(resolveDirName(dirNameUrl), 'package.json'), 'utf-8'))
7+
.name
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import {dirname} from 'node:path'
2+
3+
export function resolveDirName(importMetaUrl) {
4+
return dirname(importMetaUrl.replace('file://', ''))
5+
}
File renamed without changes.
File renamed without changes.
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "@repo/test-config",
3+
"version": "3.57.4",
4+
"private": true,
5+
"description": "Test (as in unit test) config shared across packages in the sanity monorepo",
6+
"type": "module",
7+
"exports": {
8+
"./jest": "./jest/index.mjs",
9+
"./vitest": "./vitest/index.mjs"
10+
},
11+
"devDependencies": {
12+
"@jest/globals": "^29.7.0",
13+
"@repo/dev-aliases": "workspace:*",
14+
"dotenv": "^16.4.5",
15+
"jest-environment-jsdom": "^29.7.0",
16+
"lodash-es": "^4.17.21"
17+
}
18+
}

packages/@sanity/block-tools/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
"devDependencies": {
5858
"@jest/globals": "^29.7.0",
5959
"@repo/package.config": "workspace:*",
60+
"@repo/test-config": "workspace:*",
6061
"@sanity/schema": "3.58.0",
6162
"@types/jsdom": "^20.0.0",
6263
"@types/lodash": "^4.17.7",

packages/@sanity/cli/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
"devDependencies": {
7979
"@jest/globals": "^29.7.0",
8080
"@repo/package.config": "workspace:*",
81+
"@repo/test-config": "workspace:*",
8182
"@rexxars/gitconfiglocal": "^3.0.1",
8283
"@rollup/plugin-node-resolve": "^15.2.3",
8384
"@sanity/eslint-config-studio": "^4.0.0",

packages/@sanity/codegen/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
"devDependencies": {
7070
"@jest/globals": "^29.7.0",
7171
"@repo/package.config": "workspace:*",
72+
"@repo/test-config": "workspace:*",
7273
"@types/babel__core": "^7.20.5",
7374
"@types/babel__generator": "^7.6.8",
7475
"@types/babel__register": "^7.17.3",

packages/@sanity/mutator/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
"devDependencies": {
5959
"@jest/globals": "^29.7.0",
6060
"@repo/package.config": "workspace:*",
61+
"@repo/test-config": "workspace:*",
6162
"@types/debug": "^4.1.5",
6263
"@types/lodash": "^4.17.7",
6364
"rimraf": "^3.0.2"

packages/@sanity/schema/package.json

+2
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,10 @@
7575
"devDependencies": {
7676
"@jest/globals": "^29.7.0",
7777
"@repo/package.config": "workspace:*",
78+
"@repo/test-config": "workspace:*",
7879
"@sanity/icons": "^3.4.0",
7980
"@types/arrify": "^1.0.4",
81+
"@types/lodash": "^4.17.7",
8082
"@types/object-inspect": "^1.13.0",
8183
"@types/react": "^18.3.5",
8284
"rimraf": "^3.0.2"

packages/@sanity/types/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
"devDependencies": {
5656
"@jest/globals": "^29.7.0",
5757
"@repo/package.config": "workspace:*",
58+
"@repo/test-config": "workspace:*",
5859
"@sanity/insert-menu": "1.0.9",
5960
"rimraf": "^3.0.2"
6061
}

packages/@sanity/util/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@
130130
"devDependencies": {
131131
"@jest/globals": "^29.7.0",
132132
"@repo/package.config": "workspace:*",
133+
"@repo/test-config": "workspace:*",
133134
"@types/moment": "^2.13.0",
134135
"rimraf": "^3.0.2"
135136
},

packages/sanity/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@
272272
"@playwright/test": "1.44.1",
273273
"@repo/dev-aliases": "workspace:*",
274274
"@repo/package.config": "workspace:*",
275+
"@repo/test-config": "workspace:*",
275276
"@sanity/codegen": "3.58.0",
276277
"@sanity/generate-help-url": "^3.0.0",
277278
"@sanity/pkg-utils": "6.11.2",

perf/tests/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
},
2828
"devDependencies": {
2929
"@jest/globals": "^29.7.0",
30+
"@repo/test-config": "workspace:*",
3031
"@types/lodash": "^4.17.7",
3132
"@types/node": "^18.15.3",
3233
"esbuild": "0.21.5",

0 commit comments

Comments
 (0)