build: support running ngtsc tests on windows (#28352)
Currently the "ngtsc` testing helpers resolve the `fake_core` NPM package using the `TEST_SRCDIR` variable. This is problematic on Windows where Bazel runfiles are not symlinked into the runfiles directory. In order to properly resolve the NPM Bazel tree artifact, we use the `resolveTreeNpmArtifact` runfile helper that properly resolves the artifact properly on all platforms. PR Close #28352
This commit is contained in:
parent
c10d86cbc0
commit
40da1be1e1
|
@ -14,19 +14,21 @@ import * as ts from 'typescript';
|
|||
import {createCompilerHost, createProgram} from '../../ngtools2';
|
||||
import {main, mainDiagnosticsForTest, readNgcCommandLineAndConfiguration} from '../../src/main';
|
||||
import {LazyRoute} from '../../src/ngtsc/routing';
|
||||
import {setup, TestSupport} from '../test_support';
|
||||
import {resolveNpmTreeArtifact} from '../runfile_helpers';
|
||||
import {TestSupport, setup} from '../test_support';
|
||||
|
||||
function setupFakeCore(support: TestSupport): void {
|
||||
if (!process.env.TEST_SRCDIR) {
|
||||
throw new Error('`setupFakeCore` must be run within a Bazel test');
|
||||
}
|
||||
const fakeCore = path.join(
|
||||
process.env.TEST_SRCDIR, 'angular/packages/compiler-cli/test/ngtsc/fake_core/npm_package');
|
||||
|
||||
const fakeNpmPackageDir =
|
||||
resolveNpmTreeArtifact('angular/packages/compiler-cli/test/ngtsc/fake_core/npm_package');
|
||||
|
||||
const nodeModulesPath = path.join(support.basePath, 'node_modules');
|
||||
const angularCoreDirectory = path.join(nodeModulesPath, '@angular/core');
|
||||
|
||||
fs.symlinkSync(fakeCore, angularCoreDirectory);
|
||||
fs.symlinkSync(fakeNpmPackageDir, angularCoreDirectory, 'dir');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -61,6 +63,7 @@ export class NgtscTestEnvironment {
|
|||
"baseUrl": ".",
|
||||
"declaration": true,
|
||||
"target": "es5",
|
||||
"newLine": "lf",
|
||||
"module": "es2015",
|
||||
"moduleResolution": "node",
|
||||
"lib": ["es6", "dom"],
|
||||
|
|
Loading…
Reference in New Issue