UNPKG

@dbg-riskit/angular-testing

Version:

470 lines (446 loc) 18.5 kB
import * as i0 from '@angular/core'; import { DebugElement, EventEmitter, Predicate } from '@angular/core'; import { ComponentFixture } from '@angular/core/testing'; import { RiskCSVDownloadMenuComponent } from '@dbg-riskit/angular-file'; import { Observable } from 'rxjs'; import { RiskDataTableComponent, OrderingCriteria, Row, RiskHighlighterDirective } from '@dbg-riskit/angular-datatable'; import { ValueGetter, AuthProvider, UserInfo, ErrorMessage } from '@dbg-riskit/common'; import { RiskLayoutComponent } from '@dbg-riskit/angular-view'; export { RiskLayoutComponent } from '@dbg-riskit/angular-view'; import { RouterLink, RouterStateSnapshot, Event, RouterState, NavigationExtras, UrlTree } from '@angular/router'; import { RiskLoginMenuComponent, RiskLoginComponent } from '@dbg-riskit/angular-login'; import { AuthFlow, WellKnown } from '@dbg-riskit/angular-auth'; import { Request, RequestWithData } from '@dbg-riskit/angular-common'; declare const COMPILE_TIMEOUT_INTERVAL: number; declare function initTestEnvironment(): void; declare class RiskMessageComponentDef { debugElement: DebugElement; constructor(debugElement: DebugElement); get text(): string; } declare class Page<T> { protected fixture: ComponentFixture<T>; debugElement: DebugElement; component: T; private _timeOffset; constructor(fixture: ComponentFixture<T>); detectChanges(millis?: number): void; advanceAndDetectChanges(millis?: number): void; advanceHTTP(): void; advanceAndDetectChangesUsingOffset(millis: number): void; resetTimeOffset(): void; destroy(): void; setInput(inputName: string, value: unknown): void; } declare class PageWithLoading<T> extends Page<T> { constructor(fixture: ComponentFixture<T>); get initialLoadComponent(): RiskMessageComponentDef | null; get noDataComponent(): RiskMessageComponentDef | null; } import Spy = jasmine.Spy; declare class RiskCSVDownloadMenuPage extends Page<RiskCSVDownloadMenuComponent> { constructor(fixture: ComponentFixture<RiskCSVDownloadMenuComponent>); get downloadWindowsLink(): DownloadLink; get downloadUnixLink(): DownloadLink; } declare class DownloadLink { element: DebugElement; private page; private _saveBlobSpy?; constructor(element: DebugElement, page: { detectChanges: () => void; }); private _blobSpy?; get blobSpy(): Spy; get saveSpy(): Spy; click(): void; private setupBlobConstructorSpy; private setupSaveBlobSpy; } declare class DownloadTestComponent { data: any | Observable<any>; contentType?: string; filename?: string; static ɵfac: i0.ɵɵFactoryDeclaration<DownloadTestComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<DownloadTestComponent, "ng-component", never, {}, {}, never, never, true, never>; } declare class DownloadTestComponentPage extends Page<DownloadTestComponent> { constructor(fixture: ComponentFixture<DownloadTestComponent>); get downloadLink(): DownloadLink; } declare class RiskDataTableDefinition { debugElement: DebugElement; private page; constructor(debugElement: DebugElement, page: { detectChanges: () => void; advanceAndDetectChanges: () => void; }); get component(): RiskDataTableComponent<unknown, unknown>; get data(): any[]; get element(): DebugElement; get header(): TableHeader; get sorting(): TableSorting; get body(): TableBody; get footer(): TableFooter; get recordsCount(): RecordsCount; get pager(): Pager; } declare class TableHeader { element: DebugElement; private page; constructor(element: DebugElement, page: { detectChanges: () => void; }); get rows(): TableHeaderRow[]; get cells(): TableHeaderCell[]; } declare class TableHeaderRow { element: DebugElement; private page; constructor(element: DebugElement, page: { detectChanges: () => void; }); get cells(): TableHeaderCell[]; } declare class TableHeaderCell { element: DebugElement; private page; constructor(element: DebugElement, page: { detectChanges: () => void; }); get sortingHandle(): SortingHandle | null; get tooltip(): string | null; get title(): string; get colspan(): number; get rowspan(): number; } declare class TableSorting { private table; private page; constructor(table: RiskDataTableDefinition, page: { detectChanges: () => void; }); get handles(): SortingHandle[]; get detailRowHandles(): SortingHandle[] | null; get currentOrdering(): Array<OrderingCriteria<any>>; checkSorting(firstNRows?: number, criterium?: OrderingCriteria<any>): void; } declare class SortingHandle { private page; private handle; constructor(page: { detectChanges: () => void; }, handle: DebugElement); click(): void; } declare class TableBody { element: DebugElement; private page; constructor(element: DebugElement, page: { detectChanges: () => void; }); get rows(): TableBodyRow[]; get cells(): TableBodyCell[]; } declare class TableBodyRow { element: DebugElement; private page; constructor(element: DebugElement, page: { detectChanges: () => void; }); get expander(): RowExpander; get cells(): TableBodyCell[]; get rowDetail(): TableBodyDetail | null; get highlighted(): boolean; expandRow(): void; } declare class RowExpander { element: DebugElement; constructor(element: DebugElement); get icon(): string; get opened(): boolean; get closed(): boolean; } declare class TableBodyCell { element: DebugElement; constructor(element: DebugElement); get colspan(): number; get rowspan(): number; } declare class TableBodyDetail { element: DebugElement; private page; constructor(element: DebugElement, page: { detectChanges: () => void; }); get body(): TableBodyDetailBody; get highlighted(): boolean; get colspan(): number; header(): TableHeader; } declare class TableBodyDetailBody { element: DebugElement; constructor(element: DebugElement); get rows(): TableBodyDetailRow[]; get cells(): TableBodyCell[]; } declare class TableBodyDetailRow { element: DebugElement; constructor(element: DebugElement); get cells(): TableBodyCell[]; } declare class TableFooter { element: DebugElement; constructor(element: DebugElement); get rows(): TableFooterRow[]; get cells(): TableBodyCell[]; } declare class TableFooterRow { element: DebugElement; constructor(element: DebugElement); get cells(): TableBodyCell[]; } declare class RecordsCount { element: DebugElement; constructor(element: DebugElement); get message(): string; } declare class Pager { element: DebugElement; private page; constructor(element: DebugElement, page: { detectChanges: () => void; advanceAndDetectChanges: () => void; }); get pageButtons(): DebugElement[]; expectLeadingButtonsDisabled(): void; expectLeadingButtonsNotDisabled(): void; expectTrailingButtonsDisabled(): void; expectTrailingButtonsNotDisabled(): void; expectButtonNumbers(numbers: number[]): void; expectButtonActive(index: number): void; click(index: number): void; } declare function chceckSorting(page: { detectChanges: () => void; dataTable: RiskDataTableDefinition; }, criteria: Array<ValueGetter<any>>): void; declare class DataTableDefinitionHosted extends Page<TestDataTableHostComponent> { constructor(fixture: ComponentFixture<TestDataTableHostComponent>); get dataTable(): RiskDataTableDefinition; setData(data: any): void; setPageSize(size: number): void; } declare class TestDataTableHostComponent { private static readonly defaultData; readonly data: i0.InputSignal<any[]>; readonly pageSize: i0.InputSignal<number>; readonly footer: i0.WritableSignal<any>; readonly defaultOrdering: (((record: any) => any) | { get: (record: any) => any; descending: boolean; })[]; readonly valueGetter: (record: any) => any; static ɵfac: i0.ɵɵFactoryDeclaration<TestDataTableHostComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<TestDataTableHostComponent, "ng-component", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>; } declare class RiskHighLighterDirectiveTestComponent { context?: { row: any; storage?: any; index: number; enabled: boolean; }; trackBy(index: number, row: Row<any>): any; static ɵfac: i0.ɵɵFactoryDeclaration<RiskHighLighterDirectiveTestComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<RiskHighLighterDirectiveTestComponent, "ng-component", never, {}, {}, never, never, true, never>; } declare class HighLighterDirectivePage extends Page<RiskHighLighterDirectiveTestComponent> { constructor(fixture: ComponentFixture<RiskHighLighterDirectiveTestComponent>); get highlightedElement(): DebugElement; get classList(): DOMTokenList; get highlighter(): RiskHighlighterDirective<unknown>; } declare class RiskLayoutComponentDefinition { debugElement: DebugElement; private page; constructor(debugElement: DebugElement, page: { advanceAndDetectChanges: (milis?: number) => void; }); get component(): RiskLayoutComponent; get headToolbar(): DebugElement; get logo(): DebugElement; get menu(): DebugElement[]; get sideNavContainer(): DebugElement; get sideNav(): DebugElement; get sideNavMenu(): DebugElement[]; get content(): DebugElement; openSideNav(): void; closeSideNav(): void; } declare class RiskLayoutTestComponentHostPage extends Page<RiskLayoutTestHostComponent> { get layoutComponent(): RiskLayoutComponentDefinition; } declare class RiskLayoutTestHostComponent { static ɵfac: i0.ɵɵFactoryDeclaration<RiskLayoutTestHostComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<RiskLayoutTestHostComponent, "ng-component", never, {}, {}, never, never, true, never>; } declare class LinkDefinition { private page; link: DebugElement; constructor(page: Page<any>, link: DebugElement); get stub(): RouterLink; get text(): string; click(): void; } declare class LinkOnlyPage<T> extends Page<T> { constructor(fixture: ComponentFixture<T>); get link(): LinkDefinition; } declare class LoginMenuPage extends Page<RiskLoginMenuComponent> { get menuTrigger(): DebugElement; clickMenuTrigger(): void; waitForMenu(): void; get loginLink(): LinkDefinition; get logoutLink(): LinkDefinition; } declare class RiskLoginPage extends Page<RiskLoginComponent> { constructor(fixture: ComponentFixture<RiskLoginComponent>); get formElement(): DebugElement; get usernameElement(): DebugElement; set username(username: string); get passwordElement(): DebugElement; set password(password: string); get loginButtonElement(): DebugElement; get successMessage(): RiskMessageComponentDef | null; get errorMessage(): RiskMessageComponentDef | null; clickLogin(): void; } declare class TestMessageHostComponent { message: string; static ɵfac: i0.ɵɵFactoryDeclaration<TestMessageHostComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<TestMessageHostComponent, "ng-component", never, {}, {}, never, never, true, never>; } declare class MessageHostedPage extends Page<TestMessageHostComponent> { constructor(fixture: ComponentFixture<TestMessageHostComponent>); get error(): RiskMessageComponentDef; get good(): RiskMessageComponentDef; get info(): RiskMessageComponentDef; get message(): RiskMessageComponentDef; get warn(): RiskMessageComponentDef; get initialLoad(): RiskMessageComponentDef; get noData(): RiskMessageComponentDef; get updateFailed(): RiskMessageComponentDef; } declare const storage: { authRequestedPath: string | null; }; declare class AuthRoutingFlowServiceStub { private authServiceStub; private readonly authConfig; constructor(); get authFlow(): AuthFlow; get authorizationCodeFlow(): boolean; get implicitFlow(): boolean; get hybridFlow(): boolean; get directFlow(): boolean; logout(): Observable<boolean>; login(username?: string, password?: string): Observable<boolean>; loginViaService(): Observable<boolean>; storeRequestedPath(state?: RouterStateSnapshot): void; static ɵfac: i0.ɵɵFactoryDeclaration<AuthRoutingFlowServiceStub, never>; static ɵprov: i0.ɵɵInjectableDeclaration<AuthRoutingFlowServiceStub>; } declare class AuthServiceStub implements AuthProvider { private user?; private readonly _loggedInStream; get loggedIn(): Observable<boolean>; get userProfile(): Observable<UserInfo | undefined>; get loggedInStream(): Observable<boolean>; loginViaAuthService(): Observable<boolean>; checkLocationForLoginData(): Observable<boolean>; directLogin(username: string, password: string): Observable<boolean>; logout(): Observable<never>; emitLoginStatusChange(status: boolean): void; refreshToken(): void; static ɵfac: i0.ɵɵFactoryDeclaration<AuthServiceStub, never>; static ɵprov: i0.ɵɵInjectableDeclaration<AuthServiceStub>; } declare const WELL_KNOWN: WellKnown; declare class WellKnownServiceStub { get wellKnown(): Observable<WellKnown>; static ɵfac: i0.ɵɵFactoryDeclaration<WellKnownServiceStub, never>; static ɵprov: i0.ɵɵInjectableDeclaration<WellKnownServiceStub>; } declare const FAKE_HTTP_ASYNC_TIMEOUT = 1000; declare class HttpServiceStub<T> { private value; private error; unauthorized: EventEmitter<ErrorMessage>; returnValue(value: T): void; popReturnValue(): T | undefined; shiftReturnValue(): T | undefined; throwError(value: ErrorMessage): void; get(request: Request<T>): Observable<T | undefined>; post(request: RequestWithData<T>): Observable<T | undefined>; static ɵfac: i0.ɵɵFactoryDeclaration<HttpServiceStub<any>, never>; static ɵprov: i0.ɵɵInjectableDeclaration<HttpServiceStub<any>>; } declare class HttpAsyncServiceStub<T> extends HttpServiceStub<T> { get(request: Request<T>, auth?: boolean): Observable<T | undefined>; post(request: RequestWithData<T>): Observable<T | undefined>; static ɵfac: i0.ɵɵFactoryDeclaration<HttpAsyncServiceStub<any>, never>; static ɵprov: i0.ɵɵInjectableDeclaration<HttpAsyncServiceStub<any>>; } /** * A lightweight Router stub for testing that doesn't require actual routing infrastructure. * Use this when you want complete isolation from the Router and only need to verify navigation calls. */ declare class RouterStub { private _url; private _events$; get url(): string; get events(): Observable<Event | null>; get routerState(): RouterState; navigate(commands: unknown[], _extras?: NavigationExtras): Promise<boolean>; navigateByUrl(url: string | UrlTree, _extras?: NavigationExtras): Promise<boolean>; createUrlTree(_commands: unknown[], _navigationExtras?: NavigationExtras): UrlTree; serializeUrl(_url: UrlTree): string; parseUrl(_url: string): UrlTree; isActive(_url: string | UrlTree, _exact: boolean): boolean; static ɵfac: i0.ɵɵFactoryDeclaration<RouterStub, never>; static ɵprov: i0.ɵɵInjectableDeclaration<RouterStub>; } declare class RiskLoginMenuStubComponent { readonly orientation: i0.InputSignal<"row" | "column">; static ɵfac: i0.ɵɵFactoryDeclaration<RiskLoginMenuStubComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<RiskLoginMenuStubComponent, "risk-login-menu", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>; } declare class ByUtil { static and<T>(...predicates: Array<Predicate<T>>): Predicate<T>; static or<T>(...predicates: Array<Predicate<T>>): Predicate<T>; static not<T>(predicate: Predicate<T>): Predicate<T>; } /** Button events to pass to `DebugElement.triggerEventHandler` for RouterLink event handler */ declare const BUTTON_CLICK_EVENTS: { left: { button: number; }; right: { button: number; }; }; /** Simulate element click. Defaults to mouse left-button click event. */ declare function click(el: DebugElement | HTMLElement, eventObj?: any): void; declare function setNgModelValue(element: DebugElement, value: string, realAsync?: boolean): void; declare function setNgModelSelectValue(element: DebugElement, selectedIndex: number, realAsync?: boolean): void; declare function dispatchEvent(element: DebugElement | HTMLElement | Window, eventName: string): void; /** * Create custom DOM event the old fashioned way * * https://developer.mozilla.org/en-US/docs/Web/API/Event/initEvent * Although officially deprecated, some browsers (phantom) don't accept the preferred "new Event(eventName)" */ declare function newEvent(eventName: string, bubbles?: boolean, cancelable?: boolean): CustomEvent; declare function compileTestBed(compileFunction: () => Promise<any>, destroyFunction?: () => void, stubMatchMedia?: boolean): void; export { AuthRoutingFlowServiceStub, AuthServiceStub, BUTTON_CLICK_EVENTS, ByUtil, COMPILE_TIMEOUT_INTERVAL, DataTableDefinitionHosted, DownloadLink, DownloadTestComponent, DownloadTestComponentPage, FAKE_HTTP_ASYNC_TIMEOUT, HighLighterDirectivePage, HttpAsyncServiceStub, HttpServiceStub, LinkDefinition, LinkOnlyPage, LoginMenuPage, MessageHostedPage, Page, PageWithLoading, Pager, RecordsCount, RiskCSVDownloadMenuPage, RiskDataTableDefinition, RiskHighLighterDirectiveTestComponent, RiskLayoutComponentDefinition, RiskLayoutTestComponentHostPage, RiskLayoutTestHostComponent, RiskLoginMenuStubComponent, RiskLoginPage, RiskMessageComponentDef, RouterStub, RowExpander, SortingHandle, TableBody, TableBodyCell, TableBodyDetail, TableBodyDetailBody, TableBodyDetailRow, TableBodyRow, TableFooter, TableFooterRow, TableHeader, TableHeaderCell, TableHeaderRow, TableSorting, TestDataTableHostComponent, TestMessageHostComponent, WELL_KNOWN, WellKnownServiceStub, chceckSorting, click, compileTestBed, dispatchEvent, initTestEnvironment, newEvent, setNgModelSelectValue, setNgModelValue, storage };