@orchestrator/ngx-testing
Version:
Testing utilities for Angular projects
45 lines (44 loc) • 1.64 kB
TypeScript
import { ComponentFactory, DebugElement, EventEmitter, NgModule, Type } from '@angular/core';
import { OutputMock } from './output-mock';
export interface TestingModuleExtras {
template?: string;
projectContent?: string;
ngModule?: NgModule;
}
export interface TestingComponentModuleExtras extends TestingModuleExtras {
}
export interface TestingDirectiveModuleExtras extends TestingModuleExtras {
hostTag?: string;
hostComponent?: Type<any>;
templateBindings?: string | {};
useStarSyntax?: boolean;
}
export interface TestingExtraConfig extends TestingModuleExtras, TestingComponentModuleExtras, TestingDirectiveModuleExtras {
}
export declare enum TestTypeKind {
Component = 0,
Directive = 1
}
export interface HostComponent<T> {
instance: T | undefined;
}
export declare type AsHostComponent<T> = HostComponent<T> & {
[K in keyof T]: T[K] extends EventEmitter<infer A> ? OutputMock<A> : T[K];
};
/**
* Represents inputs of component `T`
*/
export declare type ComponentInputs<T> = Partial<ExcludePropsByType<T, EventEmitter<any> | Function>>;
export declare type FilterKeysByType<T, E> = {
[K in keyof T]: T[K] extends E ? never : K;
}[keyof T];
export declare type ExcludePropsByType<T, K> = Pick<T, FilterKeysByType<T, K>>;
export declare type TemplateBindings = ComponentFactory<any>['inputs'];
export declare type TemplateBinding = TemplateBindings extends Array<infer T> ? T : unknown;
export interface DirectiveIO {
inputs: TemplateBindings;
outputs: TemplateBindings;
}
export interface DebugElementTyped<T> extends DebugElement {
readonly componentInstance: T;
}