UNPKG

@angular/build

Version:

Official build system for Angular

66 lines (65 loc) 2.78 kB
/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.dev/license */ import type { BuilderContext, BuilderOutput } from '@angular-devkit/architect'; import type { ApplicationBuilderInternalOptions } from '../../application/options'; import type { FullResult, IncrementalResult } from '../../application/results'; import type { NormalizedUnitTestBuilderOptions } from '../options'; /** * Represents the options for a test runner. */ export interface RunnerOptions { /** * Partial options for the application builder. * These will be merged with the options from the build target. */ buildOptions: Partial<ApplicationBuilderInternalOptions>; /** * A record of virtual files to be added to the build. * The key is the file path and the value is the file content. */ virtualFiles?: Record<string, string>; /** * A map of test entry points to their corresponding test files. * This is used to avoid re-discovering the test files in the executor. */ testEntryPointMappings?: Map<string, string>; } /** * Represents a stateful test execution session. * An instance of this is created for each `ng test` command. */ export interface TestExecutor { /** * Executes tests using the artifacts from a specific build. * This method can be called multiple times in watch mode. * * @param buildResult The output from the application builder. * @returns An async iterable builder output stream. */ execute(buildResult: FullResult | IncrementalResult): AsyncIterable<BuilderOutput>; [Symbol.asyncDispose](): Promise<void>; } /** * Represents the metadata and hooks for a specific test runner. */ export interface TestRunner { readonly name: string; readonly isStandalone?: boolean; validateDependencies?(options: NormalizedUnitTestBuilderOptions): void | Promise<void>; getBuildOptions(options: NormalizedUnitTestBuilderOptions, baseBuildOptions: Partial<ApplicationBuilderInternalOptions>): RunnerOptions | Promise<RunnerOptions>; /** * Creates a stateful executor for a test session. * This is called once at the start of the `ng test` command. * * @param context The Architect builder context. * @param options The normalized unit test options. * @param testEntryPointMappings A map of test entry points to their corresponding test files. * @returns A TestExecutor instance that will handle the test runs. */ createExecutor(context: BuilderContext, options: NormalizedUnitTestBuilderOptions, testEntryPointMappings: Map<string, string> | undefined): Promise<TestExecutor>; }