Files
Michael Telatynski 2f4e6a4ec4 Use vitest for some EW unit tests (#33816)
* Use vitest for some EW unit tests

* Ensure library builds are done before unit tests

* Stabilise jest tests

* Move more tests over

* Make sonar happier

* Update types/node for happy-dom compat again

* Decrease max-workers to stabilise jest tests

* Split jest over 3 runners to alleviate memory woes

* Switch jest to runInBand

* Attempt to deflake jest tests

* tweak coverage

* tweak coverage
2026-06-15 13:24:33 +00:00

76 lines
3.1 KiB
JSON

{
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"projectType": "application",
"targets": {
"prebuild:module_system": {
"cache": true,
"command": "node module_system/scripts/install.ts",
"inputs": ["{projectRoot}/build_config.yaml"],
"outputs": ["{projectRoot}/src/modules.js", "{projectRoot}/package.json", "{workspaceRoot}/pnpm-lock.yaml"],
"options": { "cwd": "apps/web" }
},
"prebuild:rethemendex": {
"cache": true,
"executor": "nx:run-script",
"options": {
"script": "rethemendex",
"cwd": "apps/web"
},
"inputs": ["{projectRoot}/res/css/**/*"],
"outputs": ["{projectRoot}/res/css/_components.pcss"]
},
"build": {
"command": "webpack-cli --progress --mode production",
"outputs": ["{projectRoot}/webapp"],
"options": { "cwd": "apps/web" }
},
"start": {
"command": "webpack-dev-server --output-path webapp --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js --mode development",
"dependsOn": ["prebuild:module_system", "prebuild:rethemendex", "^start"],
"continuous": true,
"options": { "cwd": "apps/web" }
},
"lint:types": {
"executor": "nx:run-commands",
"options": {
"commands": [
// We indirect via `pnpm exec` to stop knip interpreting the
// commandline and declaring `playwright` and `./tsconfig.module_system.json`
// as unlisted dependencies.
"pnpm exec tsc --noEmit --project ./tsconfig.module_system.json",
"pnpm exec tsc --noEmit",
"pnpm exec tsc --noEmit --project playwright"
],
"parallel": false,
"cwd": "apps/web"
},
"dependsOn": ["^build", "^build:playwright"]
},
"test:unit:prepare": {
"executor": "nx:noop",
"dependsOn": ["^build"]
},
"test:unit": {
// We avoid the jest executor because it doesn't seem to give any benefit, and it mangles the summary of failing tests.
"command": "jest",
"options": { "cwd": "apps/web" },
"dependsOn": ["test:unit:prepare"]
},
"test:vitest": {
"command": "vitest run",
"options": { "cwd": "apps/web" },
"dependsOn": ["test:unit:prepare"]
},
"test:playwright": {
"command": "playwright test",
"options": { "cwd": "apps/web" },
"dependsOn": ["^build:playwright"]
},
"test:playwright:screenshots": {
"command": "playwright-screenshots playwright test --update-snapshots --project=Chrome --grep @screenshot",
"options": { "cwd": "apps/web" },
"dependsOn": ["^build:playwright"]
}
}
}