UNPKG

@oslokommune/punkt-testing-utils

Version:
36 lines (35 loc) 2.91 kB
import { default as DomTestingLibrary } from '@testing-library/dom'; import { PktBackLink, PktCheckbox, PktCombobox, PktDatepicker, PktHelptext, PktIcon, PktInputWrapper, PktLoader, PktProgressbar, PktRadioButton, PktSelect, PktTextarea } from '@oslokommune/punkt-elements'; export declare const PKT_CUSTOM_FORMFIELDS: string[]; type PTLElementType = PktBackLink | PktCheckbox | PktCombobox | PktDatepicker | PktHelptext | PktIcon | PktInputWrapper | PktLoader | PktProgressbar | PktRadioButton | PktSelect | PktTextarea | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement; export type PktTestingLibraryOptions = Pick<typeof DomTestingLibrary, 'fireEvent' | 'findAllByLabelText' | 'findAllByTestId' | 'findAllByDisplayValue' | 'findAllByText' | 'getAllByLabelText' | 'getAllByTestId' | 'getAllByDisplayValue' | 'getAllByText'>; export type LabelOrElement<ElementType = PTLElementType> = string | RegExp | ElementType | HTMLLabelElement; export type PktElementValueType = string | number | Date; export type PktTestingLibrary = { findPktElementByLabelText: (label: string | RegExp | HTMLLabelElement, container?: HTMLElement) => Promise<PTLElementType>; getPktElementByLabelText: (label: string | RegExp | HTMLLabelElement, container?: HTMLElement) => PTLElementType; getPktSelectOptions: (labelOrElement: LabelOrElement<PktSelect>, onlySelected?: boolean) => Array<PktOption>; getAllPktElementsByLabelText: (label: string, container?: HTMLElement) => Element[]; setPktElementChecked: (labelOrElement: LabelOrElement, checked: boolean) => Promise<boolean>; isPktElementChecked: (labelOrElement: LabelOrElement) => boolean; setPktElementValue: (labelOrElement: LabelOrElement, valueOrValues: PktElementValueType | Array<PktElementValueType>, optionsOrUseInputEvent?: boolean | { useInputEventForNative?: boolean; useChangeEventForNative?: boolean; setValuePropForNative?: boolean; }) => Promise<boolean>; pktClickButton: (labelOrElement: LabelOrElement<HTMLInputElement | HTMLButtonElement>) => Promise<boolean>; waitForPktElementsToBeDefined: () => Promise<any>; setPktSelectedOptionsByLabel: (labelOrElement: LabelOrElement<PktSelect>, ...desiredOptionLabels: Array<string>) => Promise<any>; getPktElementByDisplayValue: (labelOrElement: string | RegExp, container?: HTMLElement) => PTLElementType; findPktElementByDisplayValue: (labelOrElement: string | RegExp, container?: HTMLElement) => Promise<PTLElementType>; }; export declare const setupPktTestingLibrary: (options: PktTestingLibraryOptions) => PktTestingLibrary; /** * Representerer en option i en PktSelect. * * @property {string} 0 - verdien (value) * @property {string | null} 1 - Tekstinnholdet, <option>tekstinnhold</option> * @property {boolean} 2 - Om denne er valgt (selected) */ export type PktOption = [string, string | undefined, boolean]; export {};