From 41b2499f173071b577428d018c4f35ee46f8969e Mon Sep 17 00:00:00 2001 From: Alex Rickabaugh Date: Fri, 16 Nov 2018 17:54:43 +0100 Subject: [PATCH] test(ivy): introduce route testing mode for ngtsc tests (#27697) This commit introduces a new mode for the NgtscTestEnvironment which builds the NgtscProgram and then asks for the list of lazy routes, instead of running the TS emit phase. PR Close #27697 --- packages/compiler-cli/src/main.ts | 2 +- packages/compiler-cli/test/ngtsc/BUILD.bazel | 1 + packages/compiler-cli/test/ngtsc/env.ts | 11 ++++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/compiler-cli/src/main.ts b/packages/compiler-cli/src/main.ts index 27880ceb02..d4518a4cbc 100644 --- a/packages/compiler-cli/src/main.ts +++ b/packages/compiler-cli/src/main.ts @@ -115,7 +115,7 @@ function createEmitCallback(options: api.CompilerOptions): api.TsEmitCallback|un export interface NgcParsedConfiguration extends ParsedConfiguration { watch?: boolean; } -function readNgcCommandLineAndConfiguration(args: string[]): NgcParsedConfiguration { +export function readNgcCommandLineAndConfiguration(args: string[]): NgcParsedConfiguration { const options: api.CompilerOptions = {}; const parsedArgs = require('minimist')(args); if (parsedArgs.i18nFile) options.i18nInFile = parsedArgs.i18nFile; diff --git a/packages/compiler-cli/test/ngtsc/BUILD.bazel b/packages/compiler-cli/test/ngtsc/BUILD.bazel index 0019ee03e5..e450eb66fe 100644 --- a/packages/compiler-cli/test/ngtsc/BUILD.bazel +++ b/packages/compiler-cli/test/ngtsc/BUILD.bazel @@ -7,6 +7,7 @@ ts_library( deps = [ "//packages/compiler", "//packages/compiler-cli", + "//packages/compiler-cli/src/ngtsc/routing", "//packages/compiler-cli/test:test_utils", "@ngdeps//typescript", ], diff --git a/packages/compiler-cli/test/ngtsc/env.ts b/packages/compiler-cli/test/ngtsc/env.ts index 4f63b32655..c6206e0db0 100644 --- a/packages/compiler-cli/test/ngtsc/env.ts +++ b/packages/compiler-cli/test/ngtsc/env.ts @@ -11,7 +11,9 @@ import * as fs from 'fs'; import * as path from 'path'; import * as ts from 'typescript'; -import {main, mainDiagnosticsForTest} from '../../src/main'; +import {createCompilerHost, createProgram} from '../../ngtools2'; +import {main, mainDiagnosticsForTest, readNgcCommandLineAndConfiguration} from '../../src/main'; +import {LazyRoute} from '../../src/ngtsc/routing'; import {TestSupport, isInBazel, setup} from '../test_support'; function setupFakeCore(support: TestSupport): void { @@ -127,5 +129,12 @@ export class NgtscTestEnvironment { return mainDiagnosticsForTest(['-p', this.basePath]) as ReadonlyArray; } + driveRoutes(entryPoint?: string): LazyRoute[] { + const {rootNames, options} = readNgcCommandLineAndConfiguration(['-p', this.basePath]); + const host = createCompilerHost({options}); + const program = createProgram({rootNames, host, options}); + return program.listLazyRoutes(entryPoint); + } + static get supported(): boolean { return isInBazel(); } }