/** Credit: https://github.com/unindented/custom-jquery-matchers/tree/master/packages/custom-jquery-matchers */ export interface CustomMatcherFactory { (): CustomMatcher; } export interface CustomMatcher { compare(actual: T, expected: T, ...args: any[]): CustomMatcherResult; } export interface CustomMatcherResult { pass: boolean; message: () => string; } /** * * expect('.zippy__content').not.toExist(); */ export declare const toExist: CustomMatcherFactory; /** * * expect('.zippy__content').toHaveLength(3); */ export declare const toHaveLength: CustomMatcherFactory; /** * * expect('.zippy__content').toHaveId('ID'); */ export declare const toHaveId: CustomMatcherFactory; /** * This validates classes in strict order. If you want to validate classes in any order, * just set the strict config option to false. * * expect('.zippy__content').toHaveClass('class'); * expect('.zippy__content').toHaveClass('class-a, class-b'); * expect('.zippy__content').toHaveClass(['class-a, class-b']); * expect('.zippy__content').toHaveClass(['class-b, class-a']); * expect('.zippy__content').not.toHaveClass(['class-b, class-a'], { strict: true }); */ export declare const toHaveClass: CustomMatcherFactory; /** * expect(host.query('.zippy')).toHaveAttribute('id', 'zippy'); */ export declare const toHaveAttribute: CustomMatcherFactory; /** * expect(host.query('.checkbox')).toHaveProperty('checked', true); * expect(host.query('.checkbox')).toHaveProperty({checked: true}); */ export declare const toHaveProperty: CustomMatcherFactory; export declare const toContainProperty: CustomMatcherFactory; /** * * expect('.zippy__content').toHaveText('Content'); * expect('.zippy__content').toHaveText(['Content A', 'Content B']); * * expect('.zippy__content').toHaveText((text) => text.includes('..'); */ export declare const toHaveText: CustomMatcherFactory; export declare const toHaveExactText: CustomMatcherFactory; export declare const toHaveExactTrimmedText: CustomMatcherFactory; export declare const toContainText: CustomMatcherFactory; /** * * expect('.zippy__content').toHaveValue('value'); * expect('.zippy__content').toHaveValue(['value a', 'value b']); */ export declare const toHaveValue: CustomMatcherFactory; export declare const toContainValue: CustomMatcherFactory; /** * * expect(host.element).toHaveStyle({ * backgroundColor: 'rgba(0, 0, 0, 0.1)' * }); */ export declare const toHaveStyle: CustomMatcherFactory; /** * * expect('.zippy__content').toHaveData({data: 'role', val: 'admin'}); */ export declare const toHaveData: CustomMatcherFactory; /** * * expect('.checkbox').toBeChecked(); */ export declare const toBeChecked: CustomMatcherFactory; /** * * expect('.checkbox').toBeIndeterminate(); */ export declare const toBeIndeterminate: CustomMatcherFactory; /** * * expect('.checkbox').toBeDisabled(); */ export declare const toBeDisabled: CustomMatcherFactory; /** * An empty element is an element without child elements or text. * * expect('div').toBeEmpty(); */ export declare const toBeEmpty: CustomMatcherFactory; /** * Verify if an object has some expected properties. * * const actual = { lorem: 'first', ipsum: 'second' }; * expect(actual).toBePartial({ lorem: 'first' }); */ export declare const toBePartial: CustomMatcherFactory; /** * Hidden elements are elements that have: * 1. Display or visibility style properties set to "none" or "hidden" * 2. Display or visibility computed styles set to "none" or "hidden" * 3. Width and height set to 0 (check not applied in jest) * 4. A hidden parent element (this also hides child elements) * 5. Type equal to "hidden" (only for form elements) * 6. A "hidden" attribute * * expect('div').toBeHidden(); * */ export declare const toBeHidden: CustomMatcherFactory; /** * The :selected selector selects option elements that are pre-selected. * * expect('div').toBeSelected(); * */ export declare const toBeSelected: CustomMatcherFactory; /** * Hidden elements are elements that have: * 1. Display property set to "none" * 2. Width and height set to 0 * 3. A hidden parent element (this also hides child elements) * 4. Type equal to "hidden" (only for form elements) * 5. A "hidden" attribute * * expect('div').toBeVisible(); * */ export declare const toBeVisible: CustomMatcherFactory; /** * The :focus selector selects the element that currently has focus. * * expect('input').toBeFocused(); */ export declare const toBeFocused: CustomMatcherFactory; /** * Check to see if the set of matched elements matches the given selector * returns true if the dom contains the element * * expect('div').toBeMatchedBy('.js-something') */ export declare const toBeMatchedBy: CustomMatcherFactory; /** * * expect('div').toHaveDescendant('.child') */ export declare const toHaveDescendant: CustomMatcherFactory; /** * * expect('div').toHaveDescendantWithText({selector: '.child', text: 'text'}) */ export declare const toHaveDescendantWithText: CustomMatcherFactory; export declare const toHaveSelectedOptions: CustomMatcherFactory;