UNPKG

@orchestrator/ngx-testing

Version:
45 lines (44 loc) 1.64 kB
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; }