diff --git a/spec/api-web-frame-spec.js b/spec/api-web-frame-spec.js index 12f09353722ec..3f5529c3af392 100644 --- a/spec/api-web-frame-spec.js +++ b/spec/api-web-frame-spec.js @@ -152,13 +152,21 @@ describe('webFrame module', function () { w.focus() await w.webContents.executeJavaScript('document.querySelector("input").focus()', true) - const spellCheckerFeedback = emittedOnce(ipcMain, 'spec-spell-check') + const spellCheckerFeedback = + new Promise((resolve, reject) => { + ipcMain.on('spec-spell-check', (e, words, callback) => { + if (words.length === 2) { + // The promise is resolved only after this event is received twice + // Array contains only 1 word first time and 2 the next time + resolve([words, callback]) + } + }) + }) const inputText = 'spleling test ' for (const keyCode of inputText) { w.webContents.sendInputEvent({ type: 'char', keyCode }) } - const [, words, callback] = await spellCheckerFeedback - + const [words, callback] = await spellCheckerFeedback expect(words).to.deep.equal(['spleling', 'test']) expect(callback).to.be.true() }) diff --git a/spec/fixtures/pages/webframe-spell-check.html b/spec/fixtures/pages/webframe-spell-check.html index ef16dbcd5ea17..8b162201a4d30 100644 --- a/spec/fixtures/pages/webframe-spell-check.html +++ b/spec/fixtures/pages/webframe-spell-check.html @@ -4,6 +4,7 @@ const {ipcRenderer, webFrame} = require('electron') webFrame.setSpellCheckProvider('en-US', { spellCheck: (words, callback) => { + callback(words) ipcRenderer.send('spec-spell-check', words, callback != undefined) } })