Add spec for electron module require
authorKevin Sawicki <kevinsawicki@gmail.com>
Mon, 23 May 2016 18:19:33 +0000 (11:19 -0700)
committerKevin Sawicki <kevinsawicki@gmail.com>
Mon, 23 May 2016 22:14:55 +0000 (15:14 -0700)
spec/fixtures/api/electron-module-app/index.html [new file with mode: 0644]
spec/fixtures/api/electron-module-app/node_modules/electron/index.js [new file with mode: 0644]
spec/fixtures/api/electron-module-app/node_modules/electron/package.json [new file with mode: 0644]
spec/node-spec.js

diff --git a/spec/fixtures/api/electron-module-app/index.html b/spec/fixtures/api/electron-module-app/index.html
new file mode 100644 (file)
index 0000000..1394125
--- /dev/null
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title></title>
+    <script>
+      require('electron').ipcRenderer.send('answer')
+    </script>
+  </head>
+  <body>
+
+  </body>
+</html>
diff --git a/spec/fixtures/api/electron-module-app/node_modules/electron/index.js b/spec/fixtures/api/electron-module-app/node_modules/electron/index.js
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/spec/fixtures/api/electron-module-app/node_modules/electron/package.json b/spec/fixtures/api/electron-module-app/node_modules/electron/package.json
new file mode 100644 (file)
index 0000000..07e3804
--- /dev/null
@@ -0,0 +1,4 @@
+{
+  "name": "electron",
+  "main": "index.js"
+}
index 0ab98aa67ab942052f12b7bb7883b3179736b52a..344017e47ea62e16afd8a409947aa260ef191507 100644 (file)
@@ -3,7 +3,8 @@ const child_process = require('child_process')
 const fs = require('fs')
 const path = require('path')
 const os = require('os')
-const remote = require('electron').remote
+const {remote} = require('electron')
+const {BrowserWindow, ipcMain} = remote
 
 describe('node feature', function () {
   var fixtures = path.join(__dirname, 'fixtures')
@@ -228,4 +229,33 @@ describe('node feature', function () {
       require('vm').runInNewContext('')
     })
   })
+
+  describe.only('require("electron")', function () {
+    let window = null
+
+    beforeEach(function () {
+      if (window != null) {
+        window.destroy()
+      }
+      window = new BrowserWindow({
+        show: false,
+        width: 400,
+        height: 400
+      })
+    })
+
+    afterEach(function () {
+      if (window != null) {
+        window.destroy()
+      }
+      window = null
+    })
+
+    it('always returns the internal electron module', function (done) {
+      ipcMain.once('answer', function () {
+        done()
+      })
+      window.loadURL('file://' + path.join(__dirname, 'fixtures', 'api', 'electron-module-app', 'index.html'))
+    })
+  })
 })