Skip to content

Commit 512e16a

Browse files
committed
chore(test): add support for vitest
1 parent 24618f9 commit 512e16a

File tree

7 files changed

+388
-3
lines changed

7 files changed

+388
-3
lines changed

package.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,9 @@
8383
"release:rc": "pnpm build && lerna publish --force-publish --dist-tag=dev-preview --preid=rc --exact",
8484
"release:tag": "RELEASE_TAG=\"${RELEASE_TAG:-canary}\"; pnpm build && lerna publish --canary --force-publish --no-git-tag-version --dist-tag=$RELEASE_TAG --preid=$RELEASE_TAG --exact",
8585
"start": "run-s dev",
86-
"test": "jest --forceExit",
86+
"test": "run-s test:vitest test:jest",
87+
"test:jest": "jest --forceExit",
88+
"test:vitest": "vitest --run",
8789
"test:e2e": "playwright test",
8890
"test:exports": "turbo run test --filter=@repo/test-exports",
8991
"tsdoc:dev": "sanity-tsdoc dev",
@@ -168,6 +170,7 @@
168170
"typescript": "5.6.2",
169171
"vite": "^4.5.3",
170172
"vite-tsconfig-paths": "^4.3.2",
173+
"vitest": "^2.1.1",
171174
"yargs": "^17.3.0"
172175
},
173176
"optionalDependencies": {

packages/@repo/dev-aliases/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
"description": "Dev aliases for the sanity monorepo",
66
"type": "module",
77
"exports": {
8-
".": "./dev-aliases.cjs"
8+
".": "./dev-aliases.cjs",
9+
"./vite": "./vite.mjs"
910
},
1011
"main": "./dev-aliases.cjs"
1112
}

packages/@repo/dev-aliases/vitest.mjs

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import devAliases from './dev-aliases.cjs'
2+
3+
import {dirname, resolve} from 'node:path'
4+
5+
const PACKAGES_PATH = resolve(getDirname(import.meta.url), '..', '..')
6+
7+
function getDirname(importMetaUrl) {
8+
return dirname(importMetaUrl.replace('file://', ''))
9+
}
10+
11+
export function getViteAliases() {
12+
return Object.fromEntries(
13+
Object.entries(devAliases).map(([packageName, aliasPath]) => [
14+
packageName,
15+
resolve(PACKAGES_PATH, aliasPath),
16+
]),
17+
)
18+
}

packages/@repo/test-config/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"@repo/dev-aliases": "workspace:*",
1414
"dotenv": "^16.4.5",
1515
"jest-environment-jsdom": "^29.7.0",
16-
"lodash-es": "^4.17.21"
16+
"lodash-es": "^4.17.21",
17+
"vitest": "^2.1.1"
1718
}
1819
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import * as vitest from 'vitest/config'
2+
import {getViteAliases} from '@repo/dev-aliases/vite'
3+
import {configDefaults} from 'vitest/config'
4+
5+
/**
6+
*
7+
* @param [config] {vitest.UserConfig}
8+
* @return {vitest.UserConfig}
9+
*/
10+
export function defineConfig(config) {
11+
return vitest.defineConfig({
12+
...config,
13+
test: {
14+
...config?.test,
15+
alias: {...config?.test?.alias, ...getViteAliases()},
16+
typecheck: {
17+
...config?.test?.typecheck,
18+
exclude: [
19+
...(configDefaults.typecheck?.exclude || []),
20+
'.tmp/**',
21+
'./lib/**',
22+
...(config?.test?.typecheck?.exclude || []),
23+
],
24+
},
25+
exclude: [...configDefaults.exclude, '.tmp/**', './lib/**', ...(config?.test?.exclude || [])],
26+
},
27+
})
28+
}

0 commit comments

Comments
 (0)