diff --git a/packages/playwright/types/test.d.ts b/packages/playwright/types/test.d.ts index c1ecc81fc1c91..2fd171e3bde38 100644 --- a/packages/playwright/types/test.d.ts +++ b/packages/playwright/types/test.d.ts @@ -7541,112 +7541,7 @@ interface PageAssertions { * @param name Snapshot name. * @param options */ - toHaveScreenshot(name: string|ReadonlyArray, options?: { - /** - * When set to `"disabled"`, stops CSS animations, CSS transitions and Web Animations. Animations get different - * treatment depending on their duration: - * - finite animations are fast-forwarded to completion, so they'll fire `transitionend` event. - * - infinite animations are canceled to initial state, and then played over after the screenshot. - * - * Defaults to `"disabled"` that disables animations. - */ - animations?: "disabled"|"allow"; - - /** - * When set to `"hide"`, screenshot will hide text caret. When set to `"initial"`, text caret behavior will not be - * changed. Defaults to `"hide"`. - */ - caret?: "hide"|"initial"; - - /** - * An object which specifies clipping of the resulting image. - */ - clip?: { - /** - * x-coordinate of top-left corner of clip area - */ - x: number; - - /** - * y-coordinate of top-left corner of clip area - */ - y: number; - - /** - * width of clipping area - */ - width: number; - - /** - * height of clipping area - */ - height: number; - }; - - /** - * When true, takes a screenshot of the full scrollable page, instead of the currently visible viewport. Defaults to - * `false`. - */ - fullPage?: boolean; - - /** - * Specify locators that should be masked when the screenshot is taken. Masked elements will be overlaid with a pink - * box `#FF00FF` (customized by `maskColor`) that completely covers its bounding box. - */ - mask?: Array; - - /** - * Specify the color of the overlay box for masked elements, in - * [CSS color format](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value). Default color is pink `#FF00FF`. - */ - maskColor?: string; - - /** - * An acceptable ratio of pixels that are different to the total amount of pixels, between `0` and `1`. Default is - * configurable with `TestConfig.expect`. Unset by default. - */ - maxDiffPixelRatio?: number; - - /** - * An acceptable amount of pixels that could be different. Default is configurable with `TestConfig.expect`. Unset by - * default. - */ - maxDiffPixels?: number; - - /** - * Hides default white background and allows capturing screenshots with transparency. Not applicable to `jpeg` images. - * Defaults to `false`. - */ - omitBackground?: boolean; - - /** - * When set to `"css"`, screenshot will have a single pixel per each css pixel on the page. For high-dpi devices, this - * will keep screenshots small. Using `"device"` option will produce a single pixel per each device pixel, so - * screenshots of high-dpi devices will be twice as large or even larger. - * - * Defaults to `"css"`. - */ - scale?: "css"|"device"; - - /** - * File name containing the stylesheet to apply while making the screenshot. This is where you can hide dynamic - * elements, make elements invisible or change their properties to help you creating repeatable screenshots. This - * stylesheet pierces the Shadow DOM and applies to the inner frames. - */ - stylePath?: string|Array; - - /** - * An acceptable perceived color difference in the [YIQ color space](https://en.wikipedia.org/wiki/YIQ) between the - * same pixel in compared images, between zero (strict) and one (lax), default is configurable with - * `TestConfig.expect`. Defaults to `0.2`. - */ - threshold?: number; - - /** - * Time to retry the assertion for in milliseconds. Defaults to `timeout` in `TestConfig.expect`. - */ - timeout?: number; - }): Promise; + toHaveScreenshot(name: string|ReadonlyArray, options?: PageAssertionsToHaveScreenshotOptions): Promise; /** * This function will wait until two consecutive page screenshots yield the same result, and then compare the last @@ -7661,112 +7556,7 @@ interface PageAssertions { * Note that screenshot assertions only work with Playwright test runner. * @param options */ - toHaveScreenshot(options?: { - /** - * When set to `"disabled"`, stops CSS animations, CSS transitions and Web Animations. Animations get different - * treatment depending on their duration: - * - finite animations are fast-forwarded to completion, so they'll fire `transitionend` event. - * - infinite animations are canceled to initial state, and then played over after the screenshot. - * - * Defaults to `"disabled"` that disables animations. - */ - animations?: "disabled"|"allow"; - - /** - * When set to `"hide"`, screenshot will hide text caret. When set to `"initial"`, text caret behavior will not be - * changed. Defaults to `"hide"`. - */ - caret?: "hide"|"initial"; - - /** - * An object which specifies clipping of the resulting image. - */ - clip?: { - /** - * x-coordinate of top-left corner of clip area - */ - x: number; - - /** - * y-coordinate of top-left corner of clip area - */ - y: number; - - /** - * width of clipping area - */ - width: number; - - /** - * height of clipping area - */ - height: number; - }; - - /** - * When true, takes a screenshot of the full scrollable page, instead of the currently visible viewport. Defaults to - * `false`. - */ - fullPage?: boolean; - - /** - * Specify locators that should be masked when the screenshot is taken. Masked elements will be overlaid with a pink - * box `#FF00FF` (customized by `maskColor`) that completely covers its bounding box. - */ - mask?: Array; - - /** - * Specify the color of the overlay box for masked elements, in - * [CSS color format](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value). Default color is pink `#FF00FF`. - */ - maskColor?: string; - - /** - * An acceptable ratio of pixels that are different to the total amount of pixels, between `0` and `1`. Default is - * configurable with `TestConfig.expect`. Unset by default. - */ - maxDiffPixelRatio?: number; - - /** - * An acceptable amount of pixels that could be different. Default is configurable with `TestConfig.expect`. Unset by - * default. - */ - maxDiffPixels?: number; - - /** - * Hides default white background and allows capturing screenshots with transparency. Not applicable to `jpeg` images. - * Defaults to `false`. - */ - omitBackground?: boolean; - - /** - * When set to `"css"`, screenshot will have a single pixel per each css pixel on the page. For high-dpi devices, this - * will keep screenshots small. Using `"device"` option will produce a single pixel per each device pixel, so - * screenshots of high-dpi devices will be twice as large or even larger. - * - * Defaults to `"css"`. - */ - scale?: "css"|"device"; - - /** - * File name containing the stylesheet to apply while making the screenshot. This is where you can hide dynamic - * elements, make elements invisible or change their properties to help you creating repeatable screenshots. This - * stylesheet pierces the Shadow DOM and applies to the inner frames. - */ - stylePath?: string|Array; - - /** - * An acceptable perceived color difference in the [YIQ color space](https://en.wikipedia.org/wiki/YIQ) between the - * same pixel in compared images, between zero (strict) and one (lax), default is configurable with - * `TestConfig.expect`. Defaults to `0.2`. - */ - threshold?: number; - - /** - * Time to retry the assertion for in milliseconds. Defaults to `timeout` in `TestConfig.expect`. - */ - timeout?: number; - }): Promise; + toHaveScreenshot(options?: PageAssertionsToHaveScreenshotOptions): Promise; /** * Ensures the page has the given title. @@ -8448,6 +8238,113 @@ export interface WorkerInfo { workerIndex: number; } +export interface PageAssertionsToHaveScreenshotOptions { + /** + * When set to `"disabled"`, stops CSS animations, CSS transitions and Web Animations. Animations get different + * treatment depending on their duration: + * - finite animations are fast-forwarded to completion, so they'll fire `transitionend` event. + * - infinite animations are canceled to initial state, and then played over after the screenshot. + * + * Defaults to `"disabled"` that disables animations. + */ + animations?: "disabled"|"allow"; + + /** + * When set to `"hide"`, screenshot will hide text caret. When set to `"initial"`, text caret behavior will not be + * changed. Defaults to `"hide"`. + */ + caret?: "hide"|"initial"; + + /** + * An object which specifies clipping of the resulting image. + */ + clip?: { + /** + * x-coordinate of top-left corner of clip area + */ + x: number; + + /** + * y-coordinate of top-left corner of clip area + */ + y: number; + + /** + * width of clipping area + */ + width: number; + + /** + * height of clipping area + */ + height: number; + }; + + /** + * When true, takes a screenshot of the full scrollable page, instead of the currently visible viewport. Defaults to + * `false`. + */ + fullPage?: boolean; + + /** + * Specify locators that should be masked when the screenshot is taken. Masked elements will be overlaid with a pink + * box `#FF00FF` (customized by `maskColor`) that completely covers its bounding box. + */ + mask?: Array; + + /** + * Specify the color of the overlay box for masked elements, in + * [CSS color format](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value). Default color is pink `#FF00FF`. + */ + maskColor?: string; + + /** + * An acceptable ratio of pixels that are different to the total amount of pixels, between `0` and `1`. Default is + * configurable with `TestConfig.expect`. Unset by default. + */ + maxDiffPixelRatio?: number; + + /** + * An acceptable amount of pixels that could be different. Default is configurable with `TestConfig.expect`. Unset by + * default. + */ + maxDiffPixels?: number; + + /** + * Hides default white background and allows capturing screenshots with transparency. Not applicable to `jpeg` images. + * Defaults to `false`. + */ + omitBackground?: boolean; + + /** + * When set to `"css"`, screenshot will have a single pixel per each css pixel on the page. For high-dpi devices, this + * will keep screenshots small. Using `"device"` option will produce a single pixel per each device pixel, so + * screenshots of high-dpi devices will be twice as large or even larger. + * + * Defaults to `"css"`. + */ + scale?: "css"|"device"; + + /** + * File name containing the stylesheet to apply while making the screenshot. This is where you can hide dynamic + * elements, make elements invisible or change their properties to help you creating repeatable screenshots. This + * stylesheet pierces the Shadow DOM and applies to the inner frames. + */ + stylePath?: string|Array; + + /** + * An acceptable perceived color difference in the [YIQ color space](https://en.wikipedia.org/wiki/YIQ) between the + * same pixel in compared images, between zero (strict) and one (lax), default is configurable with + * `TestConfig.expect`. Defaults to `0.2`. + */ + threshold?: number; + + /** + * Time to retry the assertion for in milliseconds. Defaults to `timeout` in `TestConfig.expect`. + */ + timeout?: number; +} + interface TestConfigWebServer { /** * Shell command to start. For example `npm run start`.. diff --git a/utils/generate_types/exported.json b/utils/generate_types/exported.json index 7cd191c644eef..e7151b75daec9 100644 --- a/utils/generate_types/exported.json +++ b/utils/generate_types/exported.json @@ -8,5 +8,6 @@ "BrowserNewContextOptionsGeolocation": "Geolocation", "BrowserNewContextOptionsHttpCredentials": "HTTPCredentials", "PageScreenshotOptions": "PageScreenshotOptions", - "LocatorScreenshotOptions": "LocatorScreenshotOptions" + "LocatorScreenshotOptions": "LocatorScreenshotOptions", + "PageAssertionsToHaveScreenshotOptions": "PageAssertionsToHaveScreenshotOptions" }