UNPKG

@hug/cypress-harness

Version:

Cypress support for Angular component test harnesses.

59 lines (58 loc) 5.74 kB
import { HarnessEnvironment, TestElement, type ComponentHarness, type HarnessQuery } from '@angular/cdk/testing'; import { type AutocompleteHarnessFilters, MatAutocompleteHarness } from '@angular/material/autocomplete/testing'; import { type ButtonHarnessFilters, MatButtonHarness } from '@angular/material/button/testing'; import { type ButtonToggleGroupHarnessFilters, MatButtonToggleGroupHarness } from '@angular/material/button-toggle/testing'; import { type CheckboxHarnessFilters, MatCheckboxHarness } from '@angular/material/checkbox/testing'; import { MatOptionHarness, type OptionHarnessFilters } from '@angular/material/core/testing'; import { type DatepickerInputHarnessFilters, MatDatepickerInputHarness } from '@angular/material/datepicker/testing'; import { type InputHarnessFilters, MatInputHarness } from '@angular/material/input/testing'; import { type ListItemHarnessFilters, type ListOptionHarnessFilters, MatListItemHarness, MatListOptionHarness, MatNavListHarness, MatNavListItemHarness, type NavListHarnessFilters, type NavListItemHarnessFilters } from '@angular/material/list/testing'; import { MatMenuHarness, MatMenuItemHarness, type MenuHarnessFilters, type MenuItemHarnessFilters } from '@angular/material/menu/testing'; import { MatRadioButtonHarness, MatRadioGroupHarness, type RadioButtonHarnessFilters, type RadioGroupHarnessFilters } from '@angular/material/radio/testing'; import { MatSelectHarness, type SelectHarnessFilters } from '@angular/material/select/testing'; import { MatSlideToggleHarness, type SlideToggleHarnessFilters } from '@angular/material/slide-toggle/testing'; import { type ChipHarnessFilters, MatChipHarness } from '@angular/material/chips/testing'; import { MatTabGroupHarness, MatTabHarness, type TabGroupHarnessFilters, type TabHarnessFilters } from '@angular/material/tabs/testing'; export declare class CypressHarnessEnvironment extends HarnessEnvironment<Element> { /** * We need this to keep a reference to the document. * This is different to `rawRootElement` which is the root element * of the harness's environment. * (The harness's environment is more of a context) */ private _documentRoot; constructor(rawRootElement: Element, { documentRoot }: { documentRoot: Element; }); forceStabilize(): Promise<void>; waitForTasksOutsideAngular(): Promise<void>; protected getDocumentRoot(): Element; protected createTestElement(element: Element): TestElement; protected createEnvironment(element: Element): HarnessEnvironment<Element>; protected getAllRawElements(selector: string): Promise<Array<Element>>; } export type ChainableHarness<HARNESS> = Cypress.Chainable<HARNESS> & { [K in keyof HARNESS]: HARNESS[K] extends (...args: any) => any ? (...args: Parameters<HARNESS[K]>) => ChainableHarness<ReturnType<HARNESS[K]> extends Promise<infer RESULT> ? RESULT : HARNESS[K]> : HARNESS[K]; }; export declare const getHarness: <HARNESS extends ComponentHarness>(harnessQuery: HarnessQuery<HARNESS>) => ChainableHarness<HARNESS>; export declare const getAllHarnesses: <HARNESS extends ComponentHarness>(query: HarnessQuery<HARNESS>) => ChainableHarness<ReadonlyArray<HARNESS>>; export declare const getInputHarness: (filter?: InputHarnessFilters | string) => ChainableHarness<MatInputHarness>; export declare const getTabGroupHarness: (filter?: TabGroupHarnessFilters | string) => ChainableHarness<MatTabGroupHarness>; export declare const getTabHarness: (filter?: TabHarnessFilters | string) => ChainableHarness<MatTabHarness>; export declare const getAutocompleteHarness: (filter?: AutocompleteHarnessFilters | string) => ChainableHarness<MatAutocompleteHarness>; export declare const getListOptionHarness: (filter?: ListOptionHarnessFilters | string) => ChainableHarness<MatListOptionHarness>; export declare const getButtonHarness: (filter?: ButtonHarnessFilters | string) => ChainableHarness<MatButtonHarness>; export declare const getButtonToggleGroupHarness: (filter?: ButtonToggleGroupHarnessFilters | string) => ChainableHarness<MatButtonToggleGroupHarness>; export declare const getChipHarness: (filter?: ChipHarnessFilters | string) => ChainableHarness<MatChipHarness>; export declare const getNavListHarness: (filter?: NavListHarnessFilters | string) => ChainableHarness<MatNavListHarness>; export declare const getNavListItemHarness: (filter?: NavListItemHarnessFilters | string) => ChainableHarness<MatNavListItemHarness>; export declare const getListItemHarness: (filter?: ListItemHarnessFilters | string) => ChainableHarness<MatListItemHarness>; export declare const getCheckBoxHarness: (filter?: CheckboxHarnessFilters | string) => ChainableHarness<MatCheckboxHarness>; export declare const getRadioButtonHarness: (filter?: RadioButtonHarnessFilters | string) => ChainableHarness<MatRadioButtonHarness>; export declare const getRadioGroupHarness: (filter?: RadioGroupHarnessFilters | string) => ChainableHarness<MatRadioGroupHarness>; export declare const getMenuHarness: (filter?: MenuHarnessFilters | string) => ChainableHarness<MatMenuHarness>; export declare const getMenuItemHarness: (filter?: MenuItemHarnessFilters | string) => ChainableHarness<MatMenuItemHarness>; export declare const getDatePickerInputHarness: (filter?: DatepickerInputHarnessFilters | string) => ChainableHarness<MatDatepickerInputHarness>; export declare const getSlideToggleHarness: (filter?: SlideToggleHarnessFilters | string) => ChainableHarness<MatSlideToggleHarness>; export declare const getSelectHarness: (filter?: SelectHarnessFilters | string) => ChainableHarness<MatSelectHarness>; export declare const getOptionHarness: (filter?: OptionHarnessFilters | string) => ChainableHarness<MatOptionHarness>;