123456789101112131415161718192021222324252627282930313233343536373839 |
- const { expect } = require('chai')
- const { remote } = require('electron')
- const { BrowserWindow } = remote
- const { emittedOnce } = require('./events-helpers')
- exports.closeWindow = async (window = null,
- { assertSingleWindow } = { assertSingleWindow: true }) => {
- const windowExists = (window !== null) && !window.isDestroyed()
- if (windowExists) {
- const isClosed = emittedOnce(window, 'closed')
- window.setClosable(true)
- window.close()
- await isClosed
- }
- if (assertSingleWindow) {
- // Although we want to assert that no windows were left handing around
- // we also want to clean up the left over windows so that no future
- // tests fail as a side effect
- const currentId = remote.getCurrentWindow().id
- const windows = BrowserWindow.getAllWindows()
- for (const win of windows) {
- if (win.id !== currentId) {
- const closePromise = emittedOnce(win, 'closed')
- win.close()
- await closePromise
- }
- }
- expect(windows).to.have.lengthOf(1)
- }
- }
- exports.waitForWebContentsToLoad = async (webContents) => {
- const didFinishLoadPromise = emittedOnce(webContents, 'did-finish-load')
- if (webContents.isLoadingMainFrame()) {
- await didFinishLoadPromise
- }
- }
|