fix(@angular/build): inherit preserveSymlinks option from build targe… · angular/angular-cli@dc27e17 · GitHub
Skip to content

Commit dc27e17

Browse files
clydinalan-agius4
authored andcommitted
fix(@angular/build): inherit preserveSymlinks option from build target in unit-test builder
The unit-test builder did not pass the preserveSymlinks configuration to Vitest's custom configuration plugin and resolved it directly from buildTargetOptions in Karma executor without considering process arguments. This caused module resolution failures in unit tests for symlinked packages. This change inherits preserveSymlinks from the referenced buildTarget options, falling back to process.execArgv if not defined. The resolved value is then successfully forwarded to the underlying bundlers and executors (Karma and Vitest).
1 parent 8ef83be commit dc27e17

5 files changed

Lines changed: 10 additions & 1 deletion

File tree

packages/angular/build/src/builders/unit-test/builder.ts

Lines changed: 5 additions & 0 deletions

packages/angular/build/src/builders/unit-test/options.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ export async function normalizeOptions(
134134
: [],
135135
dumpVirtualFiles: options.dumpVirtualFiles,
136136
listTests: options.listTests,
137+
preserveSymlinks: undefined as boolean | undefined,
137138
runnerConfig:
138139
typeof runnerConfig === 'string'
139140
? runnerConfig.length === 0

packages/angular/build/src/builders/unit-test/runners/karma/executor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ export class KarmaExecutor implements TestExecutor {
9191
progress: unitTestOptions.buildProgress ?? buildTargetOptions.progress,
9292
watch: unitTestOptions.watch,
9393
poll: buildTargetOptions.poll,
94-
preserveSymlinks: buildTargetOptions.preserveSymlinks,
94+
preserveSymlinks: unitTestOptions.preserveSymlinks,
9595
browsers: unitTestOptions.browsers?.join(','),
9696
codeCoverage: unitTestOptions.coverage.enabled,
9797
codeCoverageExclude: unitTestOptions.coverage.exclude,

packages/angular/build/src/builders/unit-test/runners/vitest/executor.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,7 @@ export class VitestExecutor implements TestExecutor {
382382
include,
383383
watch,
384384
isolate: this.options.isolate,
385+
preserveSymlinks: this.options.preserveSymlinks,
385386
}),
386387
],
387388
};

packages/angular/build/src/builders/unit-test/runners/vitest/plugins.ts

Lines changed: 2 additions & 0 deletions

0 commit comments

Comments
 (0)