const { expect } = require('chai')
const { BrowserWindow } = require('electron').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) {
    expect(BrowserWindow.getAllWindows()).to.have.lengthOf(1)
  }
}
