Skip to content

Commit e288076

Browse files
committed
refactor: streamline test runner dependency management using array mapping
This commit simplifies the `getTestRunnerDependencies` implementation and renames it to `addTestRunnerDependencies`.
1 parent cc66824 commit e288076

File tree

3 files changed

+20
-52
lines changed

3 files changed

+20
-52
lines changed

packages/schematics/angular/application/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
url,
2424
} from '@angular-devkit/schematics';
2525
import { Schema as ComponentOptions, Style as ComponentStyle } from '../component/schema';
26-
import { getTestRunnerDependencies } from '../utility/dependencies';
26+
import { addTestRunnerDependencies } from '../utility/dependencies';
2727
import {
2828
DependencyType,
2929
ExistingBehavior,
@@ -188,7 +188,7 @@ function addDependenciesToPackageJson(options: ApplicationOptions): Rule {
188188
}
189189

190190
if (!options.skipTests) {
191-
rules.push(...getTestRunnerDependencies(options.testRunner, !!options.skipInstall));
191+
rules.push(...addTestRunnerDependencies(options.testRunner, !!options.skipInstall));
192192
}
193193

194194
return chain(rules);

packages/schematics/angular/library/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
url,
2121
} from '@angular-devkit/schematics';
2222
import { join } from 'node:path/posix';
23-
import { getTestRunnerDependencies } from '../utility/dependencies';
23+
import { addTestRunnerDependencies } from '../utility/dependencies';
2424
import {
2525
DependencyType,
2626
ExistingBehavior,
@@ -79,7 +79,7 @@ function addDependenciesToPackageJson({ skipInstall, testRunner }: LibraryOption
7979
install: skipInstall ? InstallBehavior.None : InstallBehavior.Auto,
8080
}),
8181
),
82-
...getTestRunnerDependencies(testRunner, !!skipInstall),
82+
...addTestRunnerDependencies(testRunner, !!skipInstall),
8383
addDependency('tslib', latestVersions['tslib'], {
8484
type: DependencyType.Default,
8585
existing: ExistingBehavior.Skip,

packages/schematics/angular/utility/dependencies.ts

Lines changed: 16 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -82,60 +82,28 @@ export function getPackageJsonDependency(
8282
return null;
8383
}
8484

85-
export function getTestRunnerDependencies(
85+
export function addTestRunnerDependencies(
8686
testRunner: TestRunner | undefined,
8787
skipInstall: boolean,
8888
): Rule[] {
89-
if (testRunner === TestRunner.Vitest) {
90-
return [
91-
addDependency('vitest', latestVersions['vitest'], {
92-
type: DependencyType.Dev,
93-
existing: ExistingBehavior.Skip,
94-
install: skipInstall ? InstallBehavior.None : InstallBehavior.Auto,
95-
}),
96-
addDependency('jsdom', latestVersions['jsdom'], {
97-
type: DependencyType.Dev,
98-
existing: ExistingBehavior.Skip,
99-
install: skipInstall ? InstallBehavior.None : InstallBehavior.Auto,
100-
}),
101-
];
102-
}
89+
const dependencies =
90+
testRunner === TestRunner.Vitest
91+
? ['vitest', 'jsdom']
92+
: [
93+
'karma',
94+
'karma-chrome-launcher',
95+
'karma-coverage',
96+
'karma-jasmine',
97+
'karma-jasmine-html-reporter',
98+
'jasmine-core',
99+
'@types/jasmine',
100+
];
103101

104-
return [
105-
addDependency('karma', latestVersions['karma'], {
106-
type: DependencyType.Dev,
107-
existing: ExistingBehavior.Skip,
108-
install: skipInstall ? InstallBehavior.None : InstallBehavior.Auto,
109-
}),
110-
addDependency('karma-chrome-launcher', latestVersions['karma-chrome-launcher'], {
111-
type: DependencyType.Dev,
112-
existing: ExistingBehavior.Skip,
113-
install: skipInstall ? InstallBehavior.None : InstallBehavior.Auto,
114-
}),
115-
addDependency('karma-coverage', latestVersions['karma-coverage'], {
116-
type: DependencyType.Dev,
117-
existing: ExistingBehavior.Skip,
118-
install: skipInstall ? InstallBehavior.None : InstallBehavior.Auto,
119-
}),
120-
addDependency('karma-jasmine', latestVersions['karma-jasmine'], {
121-
type: DependencyType.Dev,
122-
existing: ExistingBehavior.Skip,
123-
install: skipInstall ? InstallBehavior.None : InstallBehavior.Auto,
124-
}),
125-
addDependency('karma-jasmine-html-reporter', latestVersions['karma-jasmine-html-reporter'], {
126-
type: DependencyType.Dev,
127-
existing: ExistingBehavior.Skip,
128-
install: skipInstall ? InstallBehavior.None : InstallBehavior.Auto,
129-
}),
130-
addDependency('jasmine-core', latestVersions['jasmine-core'], {
131-
type: DependencyType.Dev,
132-
existing: ExistingBehavior.Skip,
133-
install: skipInstall ? InstallBehavior.None : InstallBehavior.Auto,
134-
}),
135-
addDependency('@types/jasmine', latestVersions['@types/jasmine'], {
102+
return dependencies.map((name) =>
103+
addDependency(name, latestVersions[name], {
136104
type: DependencyType.Dev,
137105
existing: ExistingBehavior.Skip,
138106
install: skipInstall ? InstallBehavior.None : InstallBehavior.Auto,
139107
}),
140-
];
108+
);
141109
}

0 commit comments

Comments
 (0)