|
6 | 6 | * found in the LICENSE file at https://angular.dev/license |
7 | 7 | */ |
8 | 8 |
|
9 | | -import assert from 'node:assert'; |
10 | | -import { mkdir, mkdtemp, writeFile } from 'node:fs/promises'; |
11 | | -import { join } from 'node:path'; |
12 | 9 | import type { NormalizedUnitTestBuilderOptions } from '../../options'; |
13 | 10 | import KarmaTestRunner from './index'; |
14 | 11 |
|
15 | 12 | describe('KarmaTestRunner', () => { |
16 | 13 | describe('validateDependencies', () => { |
17 | | - let projectSourceRoot: string; |
18 | | - |
19 | 14 | function createOptions(coverageEnabled: boolean): NormalizedUnitTestBuilderOptions { |
20 | 15 | return { |
21 | | - projectSourceRoot, |
| 16 | + projectSourceRoot: '/non-existent', |
22 | 17 | coverage: { enabled: coverageEnabled }, |
23 | 18 | } as NormalizedUnitTestBuilderOptions; |
24 | 19 | } |
25 | 20 |
|
26 | | - beforeAll(async () => { |
27 | | - const baseTmpDir = process.env['TEST_TMPDIR']; |
28 | | - assert(baseTmpDir, 'TEST_TMPDIR is not set'); |
29 | | - projectSourceRoot = await mkdtemp(join(baseTmpDir, 'angular-cli-karma-runner-')); |
30 | | - |
31 | | - // A project with karma and karma-jasmine installed but not karma-coverage |
32 | | - await writeFile(join(projectSourceRoot, 'package.json'), '{"name": "test-project"}'); |
33 | | - for (const packageName of ['karma', 'karma-jasmine']) { |
34 | | - const packageRoot = join(projectSourceRoot, 'node_modules', packageName); |
35 | | - await mkdir(packageRoot, { recursive: true }); |
36 | | - await writeFile( |
37 | | - join(packageRoot, 'package.json'), |
38 | | - JSON.stringify({ name: packageName, version: '0.0.0', main: 'index.js' }), |
39 | | - ); |
40 | | - await writeFile(join(packageRoot, 'index.js'), ''); |
41 | | - } |
42 | | - }); |
43 | | - |
44 | 21 | it('does not require karma-coverage when coverage is disabled', () => { |
45 | | - expect(() => KarmaTestRunner.validateDependencies?.(createOptions(false))).not.toThrow(); |
| 22 | + expect(() => KarmaTestRunner.validateDependencies?.(createOptions(false))).toThrowError( |
| 23 | + /^(?!.*karma-coverage)/s, |
| 24 | + ); |
46 | 25 | }); |
47 | 26 |
|
48 | 27 | it('requires karma-coverage when coverage is enabled', () => { |
|
0 commit comments