Add spec for error on removing all IPC listeners
authorKevin Sawicki <kevinsawicki@gmail.com>
Thu, 1 Dec 2016 22:41:34 +0000 (14:41 -0800)
committerKevin Sawicki <kevinsawicki@gmail.com>
Thu, 1 Dec 2016 22:56:00 +0000 (14:56 -0800)
spec/api-ipc-spec.js

index bc286dd..4d36813 100644 (file)
@@ -495,4 +495,26 @@ describe('ipc module', function () {
       assert.equal(w.listenerCount('test'), 0)
     })
   })
+
+  it('throws an error when removing all the listeners', () => {
+    ipcMain.on('test-event', () => {})
+    assert.equal(ipcMain.listenerCount('test-event'), 1)
+
+    ipcRenderer.on('test-event', () => {})
+    assert.equal(ipcRenderer.listenerCount('test-event'), 1)
+
+    assert.throws(() => {
+      ipcMain.removeAllListeners()
+    }, /Removing all listeners from ipcMain will make Electron internals stop working/)
+
+    assert.throws(() => {
+      ipcRenderer.removeAllListeners()
+    }, /Removing all listeners from ipcRenderer will make Electron internals stop working/)
+
+    ipcMain.removeAllListeners('test-event')
+    assert.equal(ipcMain.listenerCount('test-event'), 0)
+
+    ipcRenderer.removeAllListeners('test-event')
+    assert.equal(ipcRenderer.listenerCount('test-event'), 0)
+  })
 })