///
import { EventEmitter } from 'events';
import { argumentDecorator } from '.';
export declare const TestBed: TestBedInterface;
export declare function getInitTestBedFunction(): () => void;
export interface FixtureOptions {
declarations?: unknown[];
imports?: unknown[];
inputs?: string[];
outputs?: string[];
events?: string[];
}
export declare function fixture(component: Type, options?: FixtureOptions): argumentDecorator;
export declare function component(component: Type): argumentDecorator;
type ANY = any;
type AFunction = Function;
export declare function createFixture(component: Type, options: FixtureOptions): SodaFixture;
export declare function addEvents(...names: string[]): void;
export declare function createComponent(component: Type): T;
export interface TestBedInterface {
get platform(): PlatformRef;
get ngModule(): Type | Type[];
initTestEnvironment(ngModule: Type | Type[], platform: PlatformRef, options?: TestEnvironmentOptions): void;
resetTestEnvironment(): void;
resetTestingModule(): TestBedInterface;
configureCompiler(config: {
providers?: ANY[];
useJit?: boolean;
}): void;
configureTestingModule(moduleDef: TestModuleMetadata): TestBedInterface;
compileComponents(): Promise;
inject(token: ProviderToken, notFoundValue?: T, flags?: InjectFlags): T;
inject(token: ProviderToken, notFoundValue: null, flags?: InjectFlags): T | null;
/** @deprecated from v9.0.0 use TestBed.inject */
get(token: ProviderToken, notFoundValue?: T, flags?: InjectFlags): ANY;
/** @deprecated from v9.0.0 use TestBed.inject */
get(token: ANY, notFoundValue?: ANY): ANY;
execute(tokens: ANY[], fn: AFunction, context?: ANY): ANY;
overrideModule(ngModule: Type, override: MetadataOverride): TestBedInterface;
overrideComponent(component: Type, override: MetadataOverride): TestBedInterface;
overrideDirective(directive: Type, override: MetadataOverride): TestBedInterface;
overridePipe(pipe: Type, override: MetadataOverride): TestBedInterface;
overrideTemplate(component: Type, template: string): TestBedInterface;
overrideProvider(token: ANY, provider: {
useFactory: AFunction;
deps: ANY[];
}): TestBedInterface;
overrideProvider(token: ANY, provider: {
useValue: ANY;
}): TestBedInterface;
overrideProvider(token: ANY, provider: {
useFactory?: AFunction;
useValue?: ANY;
deps?: ANY[];
}): TestBedInterface;
overrideTemplateUsingTestingModule(component: Type, template: string): TestBedInterface;
createComponent(component: Type): ComponentFixture;
}
export interface ComponentFixture {
ngZone: NgZone | null;
debugElement: DET;
componentInstance: T;
nativeElement: ANY;
detectChanges(checkNoChanges?: boolean): void;
checkNoChanges(): void;
autoDetectChanges(autoDetect?: boolean): void;
isStable(): boolean;
whenStable(): Promise;
whenRenderingDone(): Promise;
destroy(): void;
}
export interface CommonEvents {
click(eventObj?: PointerEvent): void;
input(eventObj?: InputEvent): void;
ngModelChange(text: string): void;
}
export interface SodaFixture extends ComponentFixture> {
queryByCss(selector: string): SodaDebugElement;
get inputs(): {
[key: string]: ANY;
};
get events(): EventEmitter;
}
export interface ComponentRef {
setInput(name: string, value: unknown): void;
get location(): ElementRef;
get injector(): Injector;
get instance(): C;
get hostView(): ViewRef;
get changeDetectorRef(): ChangeDetectorRef;
get componentType(): Type;
destroy(): void;
onDestroy(callback: AFunction): void;
}
export interface NgZone {
readonly hasPendingMacrotasks: boolean;
readonly hasPendingMicrotasks: boolean;
readonly isStable: boolean;
readonly onUnstable: EventEmitter;
readonly onMicrotaskEmpty: EventEmitter;
readonly onStable: EventEmitter;
readonly onError: EventEmitter;
run(fn: (...args: ANY[]) => T, applyThis?: ANY, applyArgs?: ANY[]): T;
runTask(fn: (...args: ANY[]) => T, applyThis?: ANY, applyArgs?: ANY[], name?: string): T;
runGuarded(fn: (...args: ANY[]) => T, applyThis?: ANY, applyArgs?: ANY[]): T;
runOutsideAngular(fn: (...args: ANY[]) => T): T;
}
interface DebugElementBase extends DebugNode {
get nativeElement(): HTMLElement;
get name(): string;
get properties(): {
[key: string]: ANY;
};
get attributes(): {
[key: string]: string | null;
};
get styles(): {
[key: string]: string | null;
};
get classes(): {
[key: string]: boolean;
};
get childNodes(): DebugNode[];
get children(): DET[];
}
export interface DebugElement extends DebugElementBase {
query(predicate: Predicate): DebugElement;
queryAll(predicate: Predicate): DebugElement[];
queryAllNodes(predicate: Predicate>): DebugNode[];
triggerEventHandler(eventName: string, eventObj?: unknown): void;
}
export interface SodaDebugElement extends DebugElementBase {
text: string;
query: {
by: {
css(selector: string): SodaDebugElement;
};
};
queryAll: {
by: {
css(selector: string): SodaDebugElement[];
};
};
queryAllNodes: {
by: {
directive(type: Type): DebugNode>[];
all(): DebugNode>[];
};
};
triggerEventHandler: E;
}
export interface ElementRef {
nativeElement: T;
}
export interface ChangeDetectorRef {
markForCheck(): void;
detach(): void;
detectChanges(): void;
checkNoChanges(): void;
reattach(): void;
}
export interface Injector {
get(token: ProviderToken, notFoundValue?: T, flags?: InjectFlags): T;
get(token: ANY, notFoundValue?: ANY): ANY;
}
export interface ViewRef extends ChangeDetectorRef {
destroy(): void;
get destroyed(): boolean;
onDestroy(callback: AFunction): ANY;
}
export interface DebugNode {
readonly nativeNode: ANY;
get parent(): DET | null;
get injector(): Injector;
get componentInstance(): ANY;
get context(): ANY;
get listeners(): DebugEventListener[];
get references(): {
[key: string]: ANY;
};
get providerTokens(): ANY[];
}
export interface DebugEventListener {
name: string;
callback: AFunction;
}
export interface Type extends AFunction {
new (...args: unknown[]): T;
}
export declare enum InjectFlags {
Default = 0,
Host = 1,
Self = 2,
SkipSelf = 4,
Optional = 8
}
export interface PlatformRef {
bootstrapModuleFactory(moduleFactory: NgModuleFactory, options?: BootstrapOptions): Promise>;
bootstrapModule(moduleType: Type, compilerOptions?: (CompilerOptions & BootstrapOptions) | Array): Promise>;
onDestroy(callback: () => void): void;
get injector(): Injector;
destroy(): void;
get destroyed(): boolean;
}
export interface NgModuleFactory {
get moduleType(): Type;
create(parentInjector: Injector | null): NgModuleRef;
}
export interface NgModuleRef {
get injector(): EnvironmentInjector;
get componentFactoryResolver(): ComponentFactoryResolver;
get instance(): T;
destroy(): void;
onDestroy(callback: () => void): void;
}
export interface EnvironmentInjector extends Injector {
get(token: ProviderToken, notFoundValue?: T, flags?: InjectFlags): T;
get(token: ANY, notFoundValue?: ANY): ANY;
runInContext(fn: () => ReturnT): ReturnT;
destroy(): void;
}
export interface ComponentFactoryResolver {
resolveComponentFactory(component: Type): ComponentFactory;
}
export interface ComponentFactory {
get selector(): string;
componentType(): Type;
get ngContentSelectors(): string[];
get inputs(): {
propName: string;
templateName: string;
}[];
get outputs(): {
propName: string;
templateName: string;
}[];
create(injector: Injector, projectableNodes?: ANY[][], rootSelectorOrNode?: string | ANY, environmentInjector?: EnvironmentInjector | NgModuleRef): ComponentRef;
}
export interface NgModule {
providers?: Provider[];
declarations?: Array | ANY[]>;
imports?: Array | ModuleWithProviders | ANY[]>;
exports?: Array | ANY[]>;
entryComponents?: Array | ANY[]>;
bootstrap?: Array | ANY[]>;
schemas?: Array;
id?: string;
jit?: true;
}
export interface Component extends Directive {
changeDetection?: ChangeDetectionStrategy;
viewProviders?: Provider[];
moduleId?: string;
templateUrl?: string;
template?: string;
styleUrls?: string[];
styles?: string[];
animations?: ANY[];
encapsulation?: ViewEncapsulation;
interpolation?: [string, string];
entryComponents?: Array | ANY[]>;
preserveWhitespaces?: boolean;
standalone?: boolean;
imports?: (Type | ANY[])[];
schemas?: SchemaMetadata[];
}
export interface Directive {
selector?: string;
inputs?: string[];
outputs?: string[];
providers?: Provider[];
exportAs?: string;
queries?: {
[key: string]: ANY;
};
host?: {
[key: string]: string;
};
jit?: true;
standalone?: boolean;
}
export interface Pipe {
name: string;
pure?: boolean;
standalone?: boolean;
}
export declare enum ChangeDetectionStrategy {
OnPush = 0,
Default = 1
}
export declare enum ViewEncapsulation {
Emulated = 0,
None = 2,
ShadowDom = 3
}
export interface TestModuleMetadata {
providers?: ANY[];
declarations?: ANY[];
imports?: ANY[];
schemas?: Array;
teardown?: ModuleTeardownOptions;
errorOnUnknownElements?: boolean;
errorOnUnknownProperties?: boolean;
}
interface ModuleTeardownOptions {
destroyAfterEach: boolean;
rethrowErrors?: boolean;
}
export type MetadataOverride = {
add?: Partial;
remove?: Partial;
set?: Partial;
};
export interface TestEnvironmentOptions {
teardown?: ModuleTeardownOptions;
errorOnUnknownElements?: boolean;
errorOnUnknownProperties?: boolean;
}
export interface Predicate {
(value: T): boolean;
}
export type ProviderToken = Type | AbstractType;
interface AbstractType extends AFunction {
prototype: T;
}
export interface BootstrapOptions {
ngZone?: NgZone | 'zone.js' | 'noop';
ngZoneEventCoalescing?: boolean;
ngZoneRunCoalescing?: boolean;
}
export type CompilerOptions = {
useJit?: boolean;
defaultEncapsulation?: ViewEncapsulation;
providers?: StaticProvider[];
missingTranslation?: MissingTranslationStrategy;
preserveWhitespaces?: boolean;
};
type StaticProvider = ValueProvider | ExistingProvider | StaticClassProvider | ConstructorProvider | FactoryProvider | ANY[];
interface ValueProvider extends ValueSansProvider {
provide: ANY;
multi?: boolean;
}
interface ValueSansProvider {
useValue: ANY;
}
interface ExistingProvider extends ExistingSansProvider {
provide: ANY;
multi?: boolean;
}
interface ExistingSansProvider {
useExisting: ANY;
}
interface StaticClassProvider extends StaticClassSansProvider {
provide: ANY;
multi?: boolean;
}
interface StaticClassSansProvider {
useClass: Type;
deps: ANY[];
}
interface ConstructorProvider extends ConstructorSansProvider {
provide: Type;
multi?: boolean;
}
interface ConstructorSansProvider {
deps?: ANY[];
}
interface FactoryProvider extends FactorySansProvider {
provide: ANY;
multi?: boolean;
}
interface FactorySansProvider {
useFactory: AFunction;
deps?: ANY[];
}
declare enum MissingTranslationStrategy {
Error = 0,
Warning = 1,
Ignore = 2
}
export type Provider = Type | ValueProvider | ClassProvider | ConstructorProvider | ExistingProvider | FactoryProvider | ANY[];
interface ClassProvider extends ClassSansProvider {
provide: ANY;
multi?: boolean;
}
interface ClassSansProvider {
useClass: Type;
}
export interface ModuleWithProviders {
ngModule: Type;
providers?: Provider[];
}
export interface SchemaMetadata {
name: string;
}
export {};