2021-06-07 03:09:53 +03:00
|
|
|
/**
|
|
|
|
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
|
|
|
* Modifications copyright (c) Microsoft Corporation.
|
|
|
|
*
|
|
|
|
* This source code is licensed under the MIT license found in the
|
|
|
|
* LICENSE file in the root directory of this source tree.
|
|
|
|
*/
|
|
|
|
|
2021-06-14 22:58:10 +03:00
|
|
|
import type * as expect from 'expect';
|
2021-06-07 03:09:53 +03:00
|
|
|
|
|
|
|
export declare type AsymmetricMatcher = Record<string, any>;
|
|
|
|
|
|
|
|
export declare type Expect = {
|
2021-06-07 18:02:01 +03:00
|
|
|
<T = unknown>(actual: T): PlaywrightTest.Matchers<T>;
|
2021-06-07 03:09:53 +03:00
|
|
|
|
|
|
|
// Sourced from node_modules/expect/build/types.d.ts
|
|
|
|
assertions(arg0: number): void;
|
|
|
|
extend(arg0: any): void;
|
2021-09-14 18:47:06 +03:00
|
|
|
extractExpectedAssertionsErrors: typeof expect['extractExpectedAssertionsErrors'];
|
2021-06-07 03:09:53 +03:00
|
|
|
getState(): expect.MatcherState;
|
|
|
|
hasAssertions(): void;
|
|
|
|
setState(state: Partial<expect.MatcherState>): void;
|
|
|
|
any(expectedObject: any): AsymmetricMatcher;
|
|
|
|
anything(): AsymmetricMatcher;
|
|
|
|
arrayContaining(sample: Array<unknown>): AsymmetricMatcher;
|
|
|
|
objectContaining(sample: Record<string, unknown>): AsymmetricMatcher;
|
|
|
|
stringContaining(expected: string): AsymmetricMatcher;
|
|
|
|
stringMatching(expected: string | RegExp): AsymmetricMatcher;
|
|
|
|
};
|
|
|
|
|
2021-09-03 22:34:47 +03:00
|
|
|
type OverriddenExpectProperties =
|
2021-06-25 18:27:39 +03:00
|
|
|
'not' |
|
|
|
|
'resolves' |
|
|
|
|
'rejects' |
|
|
|
|
'toMatchInlineSnapshot' |
|
|
|
|
'toThrowErrorMatchingInlineSnapshot' |
|
2021-07-28 06:26:12 +03:00
|
|
|
'toMatchSnapshot' |
|
2021-06-25 18:27:39 +03:00
|
|
|
'toThrowErrorMatchingSnapshot';
|
|
|
|
|
2021-06-07 03:09:53 +03:00
|
|
|
declare global {
|
2021-06-07 18:02:01 +03:00
|
|
|
export namespace PlaywrightTest {
|
2021-06-25 18:27:39 +03:00
|
|
|
export interface Matchers<R> extends Omit<expect.Matchers<R>, OverriddenExpectProperties> {
|
2021-06-07 03:09:53 +03:00
|
|
|
/**
|
|
|
|
* If you know how to test something, `.not` lets you test its opposite.
|
|
|
|
*/
|
2021-06-07 18:02:01 +03:00
|
|
|
not: PlaywrightTest.Matchers<R>;
|
2021-06-07 03:09:53 +03:00
|
|
|
/**
|
|
|
|
* Use resolves to unwrap the value of a fulfilled promise so any other
|
|
|
|
* matcher can be chained. If the promise is rejected the assertion fails.
|
|
|
|
*/
|
2021-06-07 18:02:01 +03:00
|
|
|
resolves: PlaywrightTest.Matchers<Promise<R>>;
|
2021-06-07 03:09:53 +03:00
|
|
|
/**
|
|
|
|
* Unwraps the reason of a rejected promise so any other matcher can be chained.
|
|
|
|
* If the promise is fulfilled the assertion fails.
|
|
|
|
*/
|
2021-06-07 18:02:01 +03:00
|
|
|
rejects: PlaywrightTest.Matchers<Promise<R>>;
|
2021-06-07 03:09:53 +03:00
|
|
|
/**
|
|
|
|
* Match snapshot
|
|
|
|
*/
|
2021-06-24 12:08:02 +03:00
|
|
|
toMatchSnapshot(options: {
|
|
|
|
name: string,
|
2021-06-07 03:09:53 +03:00
|
|
|
threshold?: number
|
|
|
|
}): R;
|
|
|
|
/**
|
|
|
|
* Match snapshot
|
|
|
|
*/
|
|
|
|
toMatchSnapshot(name: string, options?: {
|
|
|
|
threshold?: number
|
|
|
|
}): R;
|
2021-07-28 06:26:12 +03:00
|
|
|
|
|
|
|
/**
|
2021-07-29 08:30:37 +03:00
|
|
|
* Asserts input is checked.
|
2021-07-28 06:26:12 +03:00
|
|
|
*/
|
2021-07-29 08:30:37 +03:00
|
|
|
toBeChecked(options?: { timeout?: number }): Promise<R>;
|
2021-07-28 22:07:11 +03:00
|
|
|
|
|
|
|
/**
|
2021-07-29 08:30:37 +03:00
|
|
|
* Asserts input is disabled.
|
2021-07-28 22:07:11 +03:00
|
|
|
*/
|
2021-07-29 08:30:37 +03:00
|
|
|
toBeDisabled(options?: { timeout?: number }): Promise<R>;
|
2021-07-28 22:07:11 +03:00
|
|
|
|
|
|
|
/**
|
2021-07-29 08:30:37 +03:00
|
|
|
* Asserts input is editable.
|
2021-07-28 22:07:11 +03:00
|
|
|
*/
|
2021-07-29 08:30:37 +03:00
|
|
|
toBeEditable(options?: { timeout?: number }): Promise<R>;
|
2021-07-28 22:07:11 +03:00
|
|
|
|
|
|
|
/**
|
2021-07-29 08:30:37 +03:00
|
|
|
* Asserts given DOM node or input has no text content or no input value.
|
2021-07-28 22:07:11 +03:00
|
|
|
*/
|
2021-07-29 08:30:37 +03:00
|
|
|
toBeEmpty(options?: { timeout?: number }): Promise<R>;
|
2021-07-28 22:07:11 +03:00
|
|
|
|
|
|
|
/**
|
2021-07-29 08:30:37 +03:00
|
|
|
* Asserts input is enabled.
|
2021-07-28 22:07:11 +03:00
|
|
|
*/
|
2021-07-29 08:30:37 +03:00
|
|
|
toBeEnabled(options?: { timeout?: number }): Promise<R>;
|
2021-07-28 22:07:11 +03:00
|
|
|
|
|
|
|
/**
|
2021-07-29 08:30:37 +03:00
|
|
|
* Asserts given DOM is a focused (active) in document.
|
2021-07-28 22:07:11 +03:00
|
|
|
*/
|
2021-07-29 08:30:37 +03:00
|
|
|
toBeFocused(options?: { timeout?: number }): Promise<R>;
|
2021-07-28 22:07:11 +03:00
|
|
|
|
|
|
|
/**
|
2021-07-29 08:30:37 +03:00
|
|
|
* Asserts given DOM node is hidden or detached from DOM.
|
2021-07-28 22:07:11 +03:00
|
|
|
*/
|
2021-07-29 08:30:37 +03:00
|
|
|
toBeHidden(options?: { timeout?: number }): Promise<R>;
|
2021-07-28 22:07:11 +03:00
|
|
|
|
|
|
|
/**
|
2021-07-29 08:30:37 +03:00
|
|
|
* Asserts given DOM node visible on the screen.
|
2021-07-28 22:07:11 +03:00
|
|
|
*/
|
2021-07-29 08:30:37 +03:00
|
|
|
toBeVisible(options?: { timeout?: number }): Promise<R>;
|
2021-07-28 22:07:11 +03:00
|
|
|
|
|
|
|
/**
|
2021-07-29 08:30:37 +03:00
|
|
|
* Asserts element's text content matches given pattern or contains given substring.
|
2021-07-28 22:07:11 +03:00
|
|
|
*/
|
2021-09-27 21:14:35 +03:00
|
|
|
toContainText(expected: string | RegExp | (string|RegExp)[], options?: { timeout?: number, useInnerText?: boolean }): Promise<R>;
|
2021-07-28 22:07:11 +03:00
|
|
|
|
|
|
|
/**
|
2021-07-29 08:30:37 +03:00
|
|
|
* Asserts element's attributes `name` matches expected value.
|
2021-07-28 22:07:11 +03:00
|
|
|
*/
|
2021-08-19 19:55:36 +03:00
|
|
|
toHaveAttribute(name: string, expected: string | RegExp, options?: { timeout?: number }): Promise<R>;
|
2021-07-28 22:07:11 +03:00
|
|
|
|
|
|
|
/**
|
2021-07-29 08:30:37 +03:00
|
|
|
* Asserts that DOM node has a given CSS class.
|
2021-07-28 22:07:11 +03:00
|
|
|
*/
|
2021-09-03 22:34:47 +03:00
|
|
|
toHaveClass(className: string | RegExp | (string|RegExp)[], options?: { timeout?: number }): Promise<R>;
|
2021-07-29 17:33:19 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Asserts number of DOM nodes matching given locator.
|
|
|
|
*/
|
|
|
|
toHaveCount(expected: number, options?: { timeout?: number }): Promise<R>;
|
2021-07-28 22:07:11 +03:00
|
|
|
|
|
|
|
/**
|
2021-07-29 08:30:37 +03:00
|
|
|
* Asserts element's computed CSS property `name` matches expected value.
|
2021-07-28 22:07:11 +03:00
|
|
|
*/
|
2021-09-14 22:40:17 +03:00
|
|
|
toHaveCSS(name: string, expected: string | RegExp, options?: { timeout?: number }): Promise<R>;
|
2021-07-28 22:07:11 +03:00
|
|
|
|
2021-07-29 01:44:44 +03:00
|
|
|
/**
|
2021-07-29 08:30:37 +03:00
|
|
|
* Asserts element's `id` attribute matches expected value.
|
2021-07-29 01:44:44 +03:00
|
|
|
*/
|
2021-07-29 08:30:37 +03:00
|
|
|
toHaveId(expected: string | RegExp, options?: { timeout?: number }): Promise<R>;
|
2021-07-29 01:44:44 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Asserts JavaScript object that corresponds to the Node has a property with given value.
|
|
|
|
*/
|
2021-08-07 02:58:42 +03:00
|
|
|
toHaveJSProperty(name: string, value: any, options?: { timeout?: number }): Promise<R>;
|
2021-07-29 01:44:44 +03:00
|
|
|
|
|
|
|
/**
|
2021-07-29 17:33:19 +03:00
|
|
|
* Asserts element's text content.
|
2021-07-29 01:44:44 +03:00
|
|
|
*/
|
2021-09-03 22:34:47 +03:00
|
|
|
toHaveText(expected: string | RegExp | (string|RegExp)[], options?: { timeout?: number, useInnerText?: boolean }): Promise<R>;
|
2021-07-29 17:33:19 +03:00
|
|
|
|
2021-07-29 08:30:37 +03:00
|
|
|
/**
|
2021-07-29 17:33:19 +03:00
|
|
|
* Asserts page's title.
|
|
|
|
*/
|
|
|
|
toHaveTitle(expected: string | RegExp, options?: { timeout?: number }): Promise<R>;
|
|
|
|
|
|
|
|
/**
|
2021-08-27 11:16:09 +03:00
|
|
|
* Asserts page's URL.
|
2021-07-29 17:33:19 +03:00
|
|
|
*/
|
|
|
|
toHaveURL(expected: string | RegExp, options?: { timeout?: number }): Promise<R>;
|
|
|
|
|
|
|
|
/**
|
2021-07-29 08:30:37 +03:00
|
|
|
* Asserts input element's value.
|
|
|
|
*/
|
|
|
|
toHaveValue(expected: string | RegExp, options?: { timeout?: number }): Promise<R>;
|
2021-07-29 01:44:44 +03:00
|
|
|
}
|
2021-06-07 03:09:53 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-10-05 03:16:33 +03:00
|
|
|
declare global {
|
|
|
|
namespace PlaywrightTest {
|
|
|
|
export interface ExtraUseOptions {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-06-07 03:09:53 +03:00
|
|
|
export { };
|