mirror of
https://github.com/ever-co/ever-gauzy.git
synced 2026-10-02 10:05:00 +08:00
The Unit Tests workflow has never been green (24 of 97 projects red at
develop eac7136562, run 36319732347). Causes addressed here:
- Env leak: Nx loads the committed .env.local (DEMO=true,
WORKER_QUEUE_ENABLED=false, NODE_ENV=development) into every task.
The test step now sets NX_LOAD_DOT_ENV_FILES=false, and the two specs
that depend on a mode pin it themselves (role-permission counts pin
environment.demo=false and gain a demo-mode suite asserting 209 per
role; the worker spec clears the queue env before the constants load).
.env.local is unchanged.
- Angular harness: nohoist gives each workspace its own @angular copy,
so setupZoneTestEnv() initialised a different TestBed from the one the
spec used. A workspace resolver (jest.resolver.js, wrapping Nx's) makes
every @angular/* import in a Jest project resolve to one copy. The
Angular projects now inherit the preset's transformIgnorePatterns,
which gains the .mjs exception plus @datorama, @ngneat and lodash-es.
- ui-config's environment.ts is generated and gitignored; the workflow
runs `yarn config:dev` before the tests, as the Playwright workflow does.
- Misconfigured targets: gauzy (jest.config.js -> .ts, Angular transform,
setupFile moved into the config), integration-sim-ui (.ts -> .cts),
integration-activepieces (config file added), mcp-auth (ran
`node build/main.js --test`; now the jest executor like apps/mcp).
- Real failures: the openai "silence" case used a body with no `text`,
which the shared helper rejects by contract; the toolbar spec read the
tabIndex property, which is 0 on any button; the docs-ui linearity
tests asserted wall-clock bounds, now a 4x-input growth ratio.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
26 lines
974 B
TypeScript
26 lines
974 B
TypeScript
/* eslint-disable */
|
|
export default {
|
|
displayName: 'server-api',
|
|
preset: '../../jest.preset.js',
|
|
setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
|
|
coverageDirectory: '../../coverage/apps/server-api',
|
|
transform: {
|
|
'^.+\\.(ts|mjs|js|html)$': [
|
|
'jest-preset-angular',
|
|
{
|
|
tsconfig: '<rootDir>/tsconfig.spec.json',
|
|
stringifyContentPathRegex: '\\.(html|svg)$'
|
|
}
|
|
]
|
|
},
|
|
// `transformIgnorePatterns` is inherited from the root `jest.preset.js` (the ESM-only packages plus
|
|
// every `.mjs` bundle). Do not redefine it here: a project key REPLACES the preset list, and the one
|
|
// that used to sit here carried only the `.mjs` exception, so @datorama/akita, @ngneat/* and
|
|
// lodash-es were never transformed and the suites that reach them failed to load.
|
|
snapshotSerializers: [
|
|
'jest-preset-angular/build/serializers/no-ng-attributes',
|
|
'jest-preset-angular/build/serializers/ng-snapshot',
|
|
'jest-preset-angular/build/serializers/html-comment'
|
|
]
|
|
};
|