@oslokommune/punkt-testing-utils
Version:
Test-utilities for Punkt
36 lines (35 loc) • 2.91 kB
TypeScript
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 {};