Files
spartan-ng__spartan/libs/tools/project.json
Ashley Hunter 1b743f8019 test: migrate from jest to vitest with browser testing for brain/helm
Replace Jest with Vitest across the workspace. The brain and helm Angular suites
now run in a real browser (Playwright/Chromium via Vitest browser mode) so they
exercise real layout, focus, pointer events and computed styles that jsdom could
not. The cli, tools, mcp, registry and cli-smoke suites run on Vitest's node
environment.

- Add per-project vite configs and switch test targets to @nx/vitest:test
- Convert jest APIs to vi.* and jest module mocks to vi.mock with importOriginal
- Replace jest-axe with a browser-native axe-core helper and toHaveNoViolations
- Regenerate snapshots in vitest format (content unchanged, format-only)
- Remove all jest packages, configs, the preset and the @nx/jest target default
- Install Playwright Chromium in the CI unit job for the browser suites

Also fixes a brain avatar test that asserted inside a fire-and-forget setTimeout,
which passed vacuously under jsdom and only surfaced once a real browser loaded
the image.
2026-06-13 15:16:45 +01:00

63 lines
1.4 KiB
JSON

{
"name": "tools",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "libs/tools/src",
"projectType": "library",
"tags": [],
"targets": {
"build": {
"executor": "@nx/js:tsc",
"outputs": ["{options.outputPath}"],
"options": {
"outputPath": "dist/libs/tools",
"main": "libs/tools/src/index.ts",
"tsConfig": "libs/tools/tsconfig.lib.json",
"assets": [
"libs/tools/*.md",
{
"input": "./libs/tools/src",
"glob": "**/!(*.ts)",
"output": "./src"
},
{
"input": "./libs/tools/src",
"glob": "**/*.d.ts",
"output": "./src"
},
{
"input": "./libs/tools",
"glob": "generators.json",
"output": "."
},
{
"input": "./libs/tools",
"glob": "executors.json",
"output": "."
}
]
}
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"]
},
"generate-ui-docs": {
"executor": "@spartan-ng/tools:generate-ui-docs",
"options": {
"outputDir": "dist/extracted-metadata",
"outputFile": "ui-api.json",
"brainDir": "libs/brain",
"helmDir": "libs/helm"
}
},
"test": {
"executor": "@nx/vitest:test",
"dependsOn": ["generate-ui-docs"],
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
"options": {
"configFile": "libs/tools/vite.config.mts"
}
}
}
}