From 9072c90c39f4a1399a1795138bb2f331e4011f8f Mon Sep 17 00:00:00 2001 From: Hugo Dias Date: Thu, 19 Sep 2019 10:53:12 +0100 Subject: [PATCH] feat: add isElectronMain env test (#13) --- package.json | 10 +- src/env.js | 2 + src/files/glob-source.js | 2 +- test/env.spec.js | 186 ++++++++++++++++++----------- test/files/normalise-input.spec.js | 2 +- 5 files changed, 125 insertions(+), 77 deletions(-) diff --git a/package.json b/package.json index 5a3a028..0498c62 100644 --- a/package.json +++ b/package.json @@ -13,11 +13,11 @@ ], "repository": "github:ipfs/js-ipfs-utils", "scripts": { - "test": "aegir test && npm run test:electron && npm run test:electron-renderer", + "test": "aegir test", "test:browser": "aegir test -t browser", "test:node": "aegir test -t node", - "test:electron": "electron-mocha 'test/**/*.spec.js'", - "test:electron-renderer": "electron-mocha --renderer 'test/**/*.spec.js'", + "test:electron": "aegir test -t electron-main", + "test:electron-renderer": "aegir test -t electron-renderer", "lint": "aegir lint", "release": "aegir release --docs", "release-minor": "aegir release --type minor --docs", @@ -39,13 +39,11 @@ "readable-stream": "^3.4.0" }, "devDependencies": { - "aegir": "^20.0.0", + "aegir": "^20.3.0", "async-iterator-all": "^1.0.0", "chai": "^4.2.0", "chai-as-promised": "^7.1.1", "dirty-chai": "^2.0.1", - "electron": "^6.0.6", - "electron-mocha": "^8.0.3", "pull-stream": "^3.6.13", "readable-stream-2": "npm:readable-stream@^2.0.0" }, diff --git a/src/env.js b/src/env.js index f5aa940..fbd8383 100644 --- a/src/env.js +++ b/src/env.js @@ -4,6 +4,7 @@ const isElectron = require('is-electron') const IS_ENV_WITH_DOM = typeof window === 'object' && typeof document === 'object' && document.nodeType === 9 const IS_ELECTRON = isElectron() const IS_BROWSER = IS_ENV_WITH_DOM && !IS_ELECTRON +const IS_ELECTRON_MAIN = IS_ELECTRON && !IS_ENV_WITH_DOM const IS_ELECTRON_RENDERER = IS_ELECTRON && IS_ENV_WITH_DOM const IS_NODE = typeof require === 'function' && typeof process !== 'undefined' && typeof process.release !== 'undefined' && process.release.name === 'node' && !IS_ELECTRON // eslint-disable-next-line no-undef @@ -13,6 +14,7 @@ const IS_TEST = typeof process !== 'undefined' && typeof process.env !== 'undefi module.exports = { isTest: IS_TEST, isElectron: IS_ELECTRON, + isElectronMain: IS_ELECTRON_MAIN, isElectronRenderer: IS_ELECTRON_RENDERER, isNode: IS_NODE, /** diff --git a/src/files/glob-source.js b/src/files/glob-source.js index 6d33056..e7e7b58 100644 --- a/src/files/glob-source.js +++ b/src/files/glob-source.js @@ -37,7 +37,7 @@ module.exports = async function * globSource (paths, options) { for await (const path of paths) { if (typeof path !== 'string') { throw errCode( - new Error(`Path must be a string`), + new Error('Path must be a string'), 'ERR_INVALID_PATH', { path } ) diff --git a/test/env.spec.js b/test/env.spec.js index 2b543c2..7bd1ee0 100644 --- a/test/env.spec.js +++ b/test/env.spec.js @@ -10,92 +10,140 @@ const expect = chai.expect describe('env', function () { it('isElectron should have the correct value in each env', function () { - if (env.isElectron) { - return expect(env.isElectron).to.be.true() + switch (process.env.AEGIR_RUNNER) { + case 'electron-main': + expect(env.isElectron).to.be.true() + break + case 'electron-renderer': + expect(env.isElectron).to.be.true() + break + case 'node': + expect(env.isElectron).to.be.false() + break + case 'browser': + expect(env.isElectron).to.be.false() + break + case 'webworker': + expect(env.isElectron).to.be.false() + break + default: + expect.fail(`Could not detect env. Current env is ${process.env.AEGIR_RUNNER}`) + break } - if (env.isElectronRenderer) { - return expect(env.isElectron).to.be.true() - } - if (env.isBrowser) { - return expect(env.isElectron).to.be.false() - } - if (env.isNode) { - return expect(env.isElectron).to.be.false() - } - if (env.isWebWorker) { - return expect(env.isElectron).to.be.false() + }) + + it('isElectronMain should have the correct value in each env', function () { + switch (process.env.AEGIR_RUNNER) { + case 'electron-main': + expect(env.isElectronMain).to.be.true() + break + case 'electron-renderer': + expect(env.isElectronMain).to.be.false() + break + case 'node': + expect(env.isElectronMain).to.be.false() + break + case 'browser': + expect(env.isElectronMain).to.be.false() + break + case 'webworker': + expect(env.isElectronMain).to.be.false() + break + default: + expect.fail(`Could not detect env. Current env is ${process.env.AEGIR_RUNNER}`) + break } }) it('isElectronRenderer should have the correct value in each env', function () { - if (env.isElectron && !env.isElectronRenderer) { - return expect(env.isElectronRenderer).to.be.false() - } - if (env.isElectronRenderer) { - return expect(env.isElectronRenderer).to.be.true() - } - if (env.isBrowser) { - return expect(env.isElectronRenderer).to.be.false() - } - if (env.isNode) { - return expect(env.isElectronRenderer).to.be.false() - } - if (env.isWebWorker) { - return expect(env.isElectronRenderer).to.be.false() + switch (process.env.AEGIR_RUNNER) { + case 'electron-main': + expect(env.isElectronRenderer).to.be.false() + break + case 'electron-renderer': + expect(env.isElectronRenderer).to.be.true() + break + case 'node': + expect(env.isElectronRenderer).to.be.false() + break + case 'browser': + expect(env.isElectronRenderer).to.be.false() + break + case 'webworker': + expect(env.isElectronRenderer).to.be.false() + break + default: + expect.fail(`Could not detect env. Current env is ${process.env.AEGIR_RUNNER}`) + break } }) it('isNode should have the correct value in each env', function () { - if (env.isElectron) { - return expect(env.isNode).to.be.false() - } - if (env.isElectronRenderer) { - return expect(env.isNode).to.be.false() - } - if (env.isBrowser) { - return expect(env.isNode).to.be.false() - } - if (env.isNode) { - return expect(env.isNode).to.be.true() - } - if (env.isWebWorker) { - return expect(env.isNode).to.be.false() + switch (process.env.AEGIR_RUNNER) { + case 'electron-main': + expect(env.isNode).to.be.false() + break + case 'electron-renderer': + expect(env.isNode).to.be.false() + break + case 'node': + expect(env.isNode).to.be.true() + break + case 'browser': + expect(env.isNode).to.be.false() + break + case 'webworker': + expect(env.isNode).to.be.false() + break + default: + expect.fail(`Could not detect env. Current env is ${process.env.AEGIR_RUNNER}`) + break } }) it('isBrowser should have the correct value in each env', function () { - if (env.isElectron) { - return expect(env.isBrowser).to.be.false() - } - if (env.isElectronRenderer) { - return expect(env.isBrowser).to.be.false() - } - if (env.isBrowser) { - return expect(env.isBrowser).to.be.true() - } - if (env.isNode) { - return expect(env.isBrowser).to.be.false() - } - if (env.isWebWorker) { - return expect(env.isBrowser).to.be.false() + switch (process.env.AEGIR_RUNNER) { + case 'electron-main': + expect(env.isBrowser).to.be.false() + break + case 'electron-renderer': + expect(env.isBrowser).to.be.false() + break + case 'node': + expect(env.isBrowser).to.be.false() + break + case 'browser': + expect(env.isBrowser).to.be.true() + break + case 'webworker': + expect(env.isBrowser).to.be.false() + break + default: + expect.fail(`Could not detect env. Current env is ${process.env.AEGIR_RUNNER}`) + break } }) it('isWebWorker should have the correct value in each env', function () { - if (env.isElectron) { - return expect(env.isWebWorker).to.be.false() - } - if (env.isElectronRenderer) { - return expect(env.isWebWorker).to.be.false() - } - if (env.isBrowser) { - return expect(env.isWebWorker).to.be.false() - } - if (env.isNode) { - return expect(env.isWebWorker).to.be.false() - } - if (env.isWebWorker) { - return expect(env.isWebWorker).to.be.true() + switch (process.env.AEGIR_RUNNER) { + case 'electron-main': + expect(env.isWebWorker).to.be.false() + break + case 'electron-renderer': + expect(env.isWebWorker).to.be.false() + break + case 'node': + expect(env.isWebWorker).to.be.false() + break + case 'browser': + expect(env.isWebWorker).to.be.false() + break + case 'webworker': + expect(env.isWebWorker).to.be.true() + break + default: + expect.fail(`Could not detect env. Current env is ${process.env.AEGIR_RUNNER}`) + break } }) }) diff --git a/test/files/normalise-input.spec.js b/test/files/normalise-input.spec.js index 56be25e..2c11d75 100644 --- a/test/files/normalise-input.spec.js +++ b/test/files/normalise-input.spec.js @@ -32,7 +32,7 @@ async function verifyNormalisation (input) { expect(input.length).to.equal(1) if (!input[0].content[Symbol.asyncIterator] && !input[0].content[Symbol.iterator]) { - chai.assert.fail(`Content should have been an iterable or an async iterable`) + chai.assert.fail('Content should have been an iterable or an async iterable') } expect(await all(input[0].content)).to.deep.equal([BUFFER])