diff --git a/spec/fixtures/api/electron-module-app/index.html b/spec/fixtures/api/electron-module-app/index.html
new file mode 100644
index 000000000000..1394125534a6
--- /dev/null
+++ b/spec/fixtures/api/electron-module-app/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
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
index 000000000000..e69de29bb2d1
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
index 000000000000..07e3804ebb16
--- /dev/null
+++ b/spec/fixtures/api/electron-module-app/node_modules/electron/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "electron",
+ "main": "index.js"
+}
diff --git a/spec/node-spec.js b/spec/node-spec.js
index 0ab98aa67ab9..344017e47ea6 100644
--- a/spec/node-spec.js
+++ b/spec/node-spec.js
@@ -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'))
+ })
+ })
})