|
@@ -0,0 +1,62 @@
|
|
|
+var fs = require('fs')
|
|
|
+var tape = require('tape')
|
|
|
+var path = require('path')
|
|
|
+var childProcess = require('child_process')
|
|
|
+
|
|
|
+tape('fails for unsupported platforms', function (t) {
|
|
|
+ install({npm_config_platform: 'android'}, function (code, stderr) {
|
|
|
+ t.notEqual(stderr.indexOf('Electron builds are not available on platform: android'), -1, 'has error message')
|
|
|
+ t.notEqual(code, 0, 'exited with error')
|
|
|
+ t.end()
|
|
|
+ })
|
|
|
+})
|
|
|
+
|
|
|
+tape('fails for unknown architectures', function (t) {
|
|
|
+ install({
|
|
|
+ npm_config_arch: 'midcentury',
|
|
|
+ npm_config_platform: 'win32',
|
|
|
+ HOME: process.env.HOME,
|
|
|
+ USERPROFILE: process.env.USERPROFILE
|
|
|
+ }, function (code, stderr) {
|
|
|
+ t.notEqual(stderr.indexOf('Failed to find Electron'), -1, 'has error message')
|
|
|
+ t.notEqual(stderr.indexOf('win32-midcentury'), -1, 'has error message')
|
|
|
+ t.notEqual(code, 0, 'exited with error')
|
|
|
+ t.end()
|
|
|
+ })
|
|
|
+})
|
|
|
+
|
|
|
+var install = function (env, callback) {
|
|
|
+ removeVersionFile()
|
|
|
+
|
|
|
+ var installPath = path.join(__dirname, '..', 'install.js')
|
|
|
+ var installProcess = childProcess.fork(installPath, {
|
|
|
+ silent: true,
|
|
|
+ env: env
|
|
|
+ })
|
|
|
+
|
|
|
+ var stderr = ''
|
|
|
+ installProcess.stderr.on('data', function (data) {
|
|
|
+ stderr += data
|
|
|
+ })
|
|
|
+
|
|
|
+ installProcess.on('close', function (code) {
|
|
|
+ restoreVersionFile()
|
|
|
+ callback(code, stderr)
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+var versionPath = path.join(__dirname, '..', 'dist', 'version')
|
|
|
+var versionContents = null
|
|
|
+function removeVersionFile () {
|
|
|
+ if (fs.existsSync(versionPath)) {
|
|
|
+ versionContents = fs.readFileSync(versionPath)
|
|
|
+ fs.unlinkSync(versionPath)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function restoreVersionFile () {
|
|
|
+ if (versionContents != null) {
|
|
|
+ fs.writeFileSync(versionPath, versionContents)
|
|
|
+ versionContents = null
|
|
|
+ }
|
|
|
+}
|