Add failing spec for app.exit with >2 windows
authorKevin Sawicki <kevinsawicki@gmail.com>
Thu, 6 Apr 2017 22:02:32 +0000 (15:02 -0700)
committerKevin Sawicki <kevinsawicki@gmail.com>
Tue, 11 Apr 2017 16:09:17 +0000 (09:09 -0700)
spec/api-app-spec.js
spec/fixtures/api/exit-closes-all-windows-app/main.js [new file with mode: 0644]
spec/fixtures/api/exit-closes-all-windows-app/package.json [new file with mode: 0644]

index 301d6ae..9a9b433 100644 (file)
@@ -137,6 +137,16 @@ describe('app module', function () {
         done()
       })
     })
+
+    it('closes all windows', function (done) {
+      var appPath = path.join(__dirname, 'fixtures', 'api', 'exit-closes-all-windows-app')
+      var electronPath = remote.getGlobal('process').execPath
+      appProcess = ChildProcess.spawn(electronPath, [appPath])
+      appProcess.on('close', function (code) {
+        assert.equal(code, 123)
+        done()
+      })
+    })
   })
 
   describe('app.relaunch', function () {
diff --git a/spec/fixtures/api/exit-closes-all-windows-app/main.js b/spec/fixtures/api/exit-closes-all-windows-app/main.js
new file mode 100644 (file)
index 0000000..c97d8d1
--- /dev/null
@@ -0,0 +1,19 @@
+const {app, BrowserWindow} = require('electron')
+
+const windows = []
+
+function createWindow (id) {
+  const window = new BrowserWindow({show: false})
+  window.loadURL(`data:,window${id}`)
+  windows.push(window)
+}
+
+app.once('ready', () => {
+  for (let i = 1; i <= 5; i++) {
+    createWindow(i)
+  }
+
+  setImmediate(function () {
+    app.exit(123)
+  })
+})
diff --git a/spec/fixtures/api/exit-closes-all-windows-app/package.json b/spec/fixtures/api/exit-closes-all-windows-app/package.json
new file mode 100644 (file)
index 0000000..ae52532
--- /dev/null
@@ -0,0 +1,4 @@
+{
+  "name": "electron-exit-closes-all-windows",
+  "main": "main.js"
+}