38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { Tree, joinPathFragments } from '@nx/devkit';
|
|
import { configurationGenerator } from '@nx/jest';
|
|
import { UnitTestRunner } from '../../../utils/test-runners';
|
|
import type { NormalizedSchema } from './normalized-schema';
|
|
|
|
export async function addUnitTestRunner(host: Tree, options: NormalizedSchema) {
|
|
if (options.unitTestRunner === UnitTestRunner.Jest) {
|
|
await configurationGenerator(host, {
|
|
...options,
|
|
project: options.name,
|
|
setupFile: 'angular',
|
|
supportTsx: false,
|
|
skipSerializers: false,
|
|
skipPackageJson: options.skipPackageJson,
|
|
skipFormat: true,
|
|
});
|
|
const setupFile = joinPathFragments(
|
|
options.appProjectRoot,
|
|
'src',
|
|
'test-setup.ts'
|
|
);
|
|
if (options.strict && host.exists(setupFile)) {
|
|
const contents = host.read(setupFile, 'utf-8');
|
|
host.write(
|
|
setupFile,
|
|
`// @ts-expect-error https://thymikee.github.io/jest-preset-angular/docs/getting-started/test-environment
|
|
globalThis.ngJest = {
|
|
testEnvironmentOptions: {
|
|
errorOnUnknownElements: true,
|
|
errorOnUnknownProperties: true,
|
|
},
|
|
};
|
|
${contents}`
|
|
);
|
|
}
|
|
}
|
|
}
|