From 0962c1bd746ee4cc7d2d2a864df206fd7d7def1a Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Tue, 26 May 2020 13:22:55 -0400 Subject: [PATCH] ci: deflake WOA tests (#23769) Co-authored-by: John Kleinschmidt --- azure-pipelines-woa.yml | 1 - spec-main/api-menu-spec.ts | 12 ++++++++---- spec-main/chromium-spec.ts | 10 ++++++++-- spec-main/extensions-spec.ts | 3 ++- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/azure-pipelines-woa.yml b/azure-pipelines-woa.yml index d7bd2d1d98019..322b8f506176f 100644 --- a/azure-pipelines-woa.yml +++ b/azure-pipelines-woa.yml @@ -71,7 +71,6 @@ steps: ELECTRON_TEST_RESULTS_DIR: junit MOCHA_MULTI_REPORTERS: 'mocha-junit-reporter, tap' MOCHA_REPORTER: mocha-multi-reporters - MOCHA_TIMEOUT: 120000 - task: PublishTestResults@2 displayName: 'Publish Test Results' diff --git a/spec-main/api-menu-spec.ts b/spec-main/api-menu-spec.ts index fcdc99b084d33..8da25df7ae500 100644 --- a/spec-main/api-menu-spec.ts +++ b/spec-main/api-menu-spec.ts @@ -10,7 +10,6 @@ import { closeWindow } from './window-helpers'; const fixturesPath = path.resolve(__dirname, 'fixtures'); describe('Menu module', function () { - this.timeout(5000); describe('Menu.buildFromTemplate', () => { it('should be able to attach extra fields', () => { const menu = Menu.buildFromTemplate([ @@ -885,9 +884,14 @@ describe('Menu module', function () { const appProcess = cp.spawn(process.execPath, [appPath]); let output = ''; - appProcess.stdout.on('data', data => { output += data; }); - - await emittedOnce(appProcess, 'exit'); + await new Promise((resolve) => { + appProcess.stdout.on('data', data => { + output += data; + if (data.indexOf('Window has') > -1) { + resolve(); + } + }); + }); expect(output).to.include('Window has no menu'); }); diff --git a/spec-main/chromium-spec.ts b/spec-main/chromium-spec.ts index 2f0813e81679e..89691fbfcedd2 100644 --- a/spec-main/chromium-spec.ts +++ b/spec-main/chromium-spec.ts @@ -1233,7 +1233,10 @@ describe('chromium features', () => { w.loadURL(pdfSource); const [, contents] = await emittedOnce(app, 'web-contents-created'); expect(contents.getURL()).to.equal('chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/index.html'); - await emittedOnce(contents, 'did-finish-load'); + await new Promise((resolve) => { + contents.on('did-finish-load', resolve); + contents.on('did-frame-finish-load', resolve); + }); }); it('opens when loading a pdf resource in a iframe', async () => { @@ -1241,7 +1244,10 @@ describe('chromium features', () => { w.loadFile(path.join(__dirname, 'fixtures', 'pages', 'pdf-in-iframe.html')); const [, contents] = await emittedOnce(app, 'web-contents-created'); expect(contents.getURL()).to.equal('chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/index.html'); - await emittedOnce(contents, 'did-finish-load'); + await new Promise((resolve) => { + contents.on('did-finish-load', resolve); + contents.on('did-frame-finish-load', resolve); + }); }); }); diff --git a/spec-main/extensions-spec.ts b/spec-main/extensions-spec.ts index 53fdb76148e62..3f7020a6c9274 100644 --- a/spec-main/extensions-spec.ts +++ b/spec-main/extensions-spec.ts @@ -294,11 +294,12 @@ describe('chrome extensions', () => { it('loads a devtools extension', async () => { const customSession = session.fromPartition(`persist:${require('uuid').v4()}`); customSession.loadExtension(path.join(fixtures, 'extensions', 'devtools-extension')); + const winningMessage = emittedOnce(ipcMain, 'winning'); const w = new BrowserWindow({ show: true, webPreferences: { session: customSession, nodeIntegration: true } }); await w.loadURL(url); w.webContents.openDevTools(); showLastDevToolsPanel(w); - await emittedOnce(ipcMain, 'winning'); + await winningMessage; }); });