test: disable flaky macOS panel test & refactor screen capture testing (#41461)
* Disable flaky test Co-authored-by: clavin <clavin@electronjs.org> * Add helper for storing test artifacts Co-authored-by: clavin <clavin@electronjs.org> * Refactor screen capture tests We have a pattern for inspecting a screen capture, so this refactor codifies that pattern into a helper. This gives us shorter test code, consistency (previously, the display in test code and the display captured could theoretically be different), and better debugging/observability on failure. Co-authored-by: clavin <clavin@electronjs.org> --------- Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: clavin <clavin@electronjs.org>
This commit is contained in:
parent
174aedf54c
commit
105acec227
8 changed files with 215 additions and 141 deletions
|
@ -1,6 +1,6 @@
|
|||
import * as path from 'node:path';
|
||||
import * as url from 'node:url';
|
||||
import { BrowserWindow, session, ipcMain, app, WebContents, screen } from 'electron/main';
|
||||
import { BrowserWindow, session, ipcMain, app, WebContents } from 'electron/main';
|
||||
import { closeAllWindows } from './lib/window-helpers';
|
||||
import { emittedUntil } from './lib/events-helpers';
|
||||
import { ifit, ifdescribe, defer, itremote, useRemoteContext, listen } from './lib/spec-helpers';
|
||||
|
@ -9,7 +9,7 @@ import * as http from 'node:http';
|
|||
import * as auth from 'basic-auth';
|
||||
import { once } from 'node:events';
|
||||
import { setTimeout } from 'node:timers/promises';
|
||||
import { areColorsSimilar, captureScreen, HexColors, getPixelColor } from './lib/screen-helpers';
|
||||
import { HexColors, ScreenCapture } from './lib/screen-helpers';
|
||||
|
||||
declare let WebView: any;
|
||||
const features = process._linkedBinding('electron_common_features');
|
||||
|
@ -804,14 +804,8 @@ describe('<webview> tag', function () {
|
|||
|
||||
await setTimeout(1000);
|
||||
|
||||
const display = screen.getPrimaryDisplay();
|
||||
const screenCapture = await captureScreen();
|
||||
const centerColor = getPixelColor(screenCapture, {
|
||||
x: display.size.width / 2,
|
||||
y: display.size.height / 2
|
||||
});
|
||||
|
||||
expect(areColorsSimilar(centerColor, WINDOW_BACKGROUND_COLOR)).to.be.true();
|
||||
const screenCapture = await ScreenCapture.create();
|
||||
await screenCapture.expectColorAtCenterMatches(WINDOW_BACKGROUND_COLOR);
|
||||
});
|
||||
|
||||
// Linux and arm64 platforms (WOA and macOS) do not return any capture sources
|
||||
|
@ -823,14 +817,8 @@ describe('<webview> tag', function () {
|
|||
|
||||
await setTimeout(1000);
|
||||
|
||||
const display = screen.getPrimaryDisplay();
|
||||
const screenCapture = await captureScreen();
|
||||
const centerColor = getPixelColor(screenCapture, {
|
||||
x: display.size.width / 2,
|
||||
y: display.size.height / 2
|
||||
});
|
||||
|
||||
expect(areColorsSimilar(centerColor, WINDOW_BACKGROUND_COLOR)).to.be.true();
|
||||
const screenCapture = await ScreenCapture.create();
|
||||
await screenCapture.expectColorAtCenterMatches(WINDOW_BACKGROUND_COLOR);
|
||||
});
|
||||
|
||||
// Linux and arm64 platforms (WOA and macOS) do not return any capture sources
|
||||
|
@ -842,14 +830,8 @@ describe('<webview> tag', function () {
|
|||
|
||||
await setTimeout(1000);
|
||||
|
||||
const display = screen.getPrimaryDisplay();
|
||||
const screenCapture = await captureScreen();
|
||||
const centerColor = getPixelColor(screenCapture, {
|
||||
x: display.size.width / 2,
|
||||
y: display.size.height / 2
|
||||
});
|
||||
|
||||
expect(areColorsSimilar(centerColor, HexColors.WHITE)).to.be.true();
|
||||
const screenCapture = await ScreenCapture.create();
|
||||
await screenCapture.expectColorAtCenterMatches(HexColors.WHITE);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue