Skip to content

Commit 9072c90

Browse files
authored
feat: add isElectronMain env test (#13)
1 parent 3df30c0 commit 9072c90

File tree

5 files changed

+125
-77
lines changed

5 files changed

+125
-77
lines changed

package.json

+4-6
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
],
1414
"repository": "github:ipfs/js-ipfs-utils",
1515
"scripts": {
16-
"test": "aegir test && npm run test:electron && npm run test:electron-renderer",
16+
"test": "aegir test",
1717
"test:browser": "aegir test -t browser",
1818
"test:node": "aegir test -t node",
19-
"test:electron": "electron-mocha 'test/**/*.spec.js'",
20-
"test:electron-renderer": "electron-mocha --renderer 'test/**/*.spec.js'",
19+
"test:electron": "aegir test -t electron-main",
20+
"test:electron-renderer": "aegir test -t electron-renderer",
2121
"lint": "aegir lint",
2222
"release": "aegir release --docs",
2323
"release-minor": "aegir release --type minor --docs",
@@ -39,13 +39,11 @@
3939
"readable-stream": "^3.4.0"
4040
},
4141
"devDependencies": {
42-
"aegir": "^20.0.0",
42+
"aegir": "^20.3.0",
4343
"async-iterator-all": "^1.0.0",
4444
"chai": "^4.2.0",
4545
"chai-as-promised": "^7.1.1",
4646
"dirty-chai": "^2.0.1",
47-
"electron": "^6.0.6",
48-
"electron-mocha": "^8.0.3",
4947
"pull-stream": "^3.6.13",
5048
"readable-stream-2": "npm:readable-stream@^2.0.0"
5149
},

src/env.js

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const isElectron = require('is-electron')
44
const IS_ENV_WITH_DOM = typeof window === 'object' && typeof document === 'object' && document.nodeType === 9
55
const IS_ELECTRON = isElectron()
66
const IS_BROWSER = IS_ENV_WITH_DOM && !IS_ELECTRON
7+
const IS_ELECTRON_MAIN = IS_ELECTRON && !IS_ENV_WITH_DOM
78
const IS_ELECTRON_RENDERER = IS_ELECTRON && IS_ENV_WITH_DOM
89
const IS_NODE = typeof require === 'function' && typeof process !== 'undefined' && typeof process.release !== 'undefined' && process.release.name === 'node' && !IS_ELECTRON
910
// eslint-disable-next-line no-undef
@@ -13,6 +14,7 @@ const IS_TEST = typeof process !== 'undefined' && typeof process.env !== 'undefi
1314
module.exports = {
1415
isTest: IS_TEST,
1516
isElectron: IS_ELECTRON,
17+
isElectronMain: IS_ELECTRON_MAIN,
1618
isElectronRenderer: IS_ELECTRON_RENDERER,
1719
isNode: IS_NODE,
1820
/**

src/files/glob-source.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ module.exports = async function * globSource (paths, options) {
3737
for await (const path of paths) {
3838
if (typeof path !== 'string') {
3939
throw errCode(
40-
new Error(`Path must be a string`),
40+
new Error('Path must be a string'),
4141
'ERR_INVALID_PATH',
4242
{ path }
4343
)

test/env.spec.js

+117-69
Original file line numberDiff line numberDiff line change
@@ -10,92 +10,140 @@ const expect = chai.expect
1010

1111
describe('env', function () {
1212
it('isElectron should have the correct value in each env', function () {
13-
if (env.isElectron) {
14-
return expect(env.isElectron).to.be.true()
13+
switch (process.env.AEGIR_RUNNER) {
14+
case 'electron-main':
15+
expect(env.isElectron).to.be.true()
16+
break
17+
case 'electron-renderer':
18+
expect(env.isElectron).to.be.true()
19+
break
20+
case 'node':
21+
expect(env.isElectron).to.be.false()
22+
break
23+
case 'browser':
24+
expect(env.isElectron).to.be.false()
25+
break
26+
case 'webworker':
27+
expect(env.isElectron).to.be.false()
28+
break
29+
default:
30+
expect.fail(`Could not detect env. Current env is ${process.env.AEGIR_RUNNER}`)
31+
break
1532
}
16-
if (env.isElectronRenderer) {
17-
return expect(env.isElectron).to.be.true()
18-
}
19-
if (env.isBrowser) {
20-
return expect(env.isElectron).to.be.false()
21-
}
22-
if (env.isNode) {
23-
return expect(env.isElectron).to.be.false()
24-
}
25-
if (env.isWebWorker) {
26-
return expect(env.isElectron).to.be.false()
33+
})
34+
35+
it('isElectronMain should have the correct value in each env', function () {
36+
switch (process.env.AEGIR_RUNNER) {
37+
case 'electron-main':
38+
expect(env.isElectronMain).to.be.true()
39+
break
40+
case 'electron-renderer':
41+
expect(env.isElectronMain).to.be.false()
42+
break
43+
case 'node':
44+
expect(env.isElectronMain).to.be.false()
45+
break
46+
case 'browser':
47+
expect(env.isElectronMain).to.be.false()
48+
break
49+
case 'webworker':
50+
expect(env.isElectronMain).to.be.false()
51+
break
52+
default:
53+
expect.fail(`Could not detect env. Current env is ${process.env.AEGIR_RUNNER}`)
54+
break
2755
}
2856
})
2957

3058
it('isElectronRenderer should have the correct value in each env', function () {
31-
if (env.isElectron && !env.isElectronRenderer) {
32-
return expect(env.isElectronRenderer).to.be.false()
33-
}
34-
if (env.isElectronRenderer) {
35-
return expect(env.isElectronRenderer).to.be.true()
36-
}
37-
if (env.isBrowser) {
38-
return expect(env.isElectronRenderer).to.be.false()
39-
}
40-
if (env.isNode) {
41-
return expect(env.isElectronRenderer).to.be.false()
42-
}
43-
if (env.isWebWorker) {
44-
return expect(env.isElectronRenderer).to.be.false()
59+
switch (process.env.AEGIR_RUNNER) {
60+
case 'electron-main':
61+
expect(env.isElectronRenderer).to.be.false()
62+
break
63+
case 'electron-renderer':
64+
expect(env.isElectronRenderer).to.be.true()
65+
break
66+
case 'node':
67+
expect(env.isElectronRenderer).to.be.false()
68+
break
69+
case 'browser':
70+
expect(env.isElectronRenderer).to.be.false()
71+
break
72+
case 'webworker':
73+
expect(env.isElectronRenderer).to.be.false()
74+
break
75+
default:
76+
expect.fail(`Could not detect env. Current env is ${process.env.AEGIR_RUNNER}`)
77+
break
4578
}
4679
})
4780

4881
it('isNode should have the correct value in each env', function () {
49-
if (env.isElectron) {
50-
return expect(env.isNode).to.be.false()
51-
}
52-
if (env.isElectronRenderer) {
53-
return expect(env.isNode).to.be.false()
54-
}
55-
if (env.isBrowser) {
56-
return expect(env.isNode).to.be.false()
57-
}
58-
if (env.isNode) {
59-
return expect(env.isNode).to.be.true()
60-
}
61-
if (env.isWebWorker) {
62-
return expect(env.isNode).to.be.false()
82+
switch (process.env.AEGIR_RUNNER) {
83+
case 'electron-main':
84+
expect(env.isNode).to.be.false()
85+
break
86+
case 'electron-renderer':
87+
expect(env.isNode).to.be.false()
88+
break
89+
case 'node':
90+
expect(env.isNode).to.be.true()
91+
break
92+
case 'browser':
93+
expect(env.isNode).to.be.false()
94+
break
95+
case 'webworker':
96+
expect(env.isNode).to.be.false()
97+
break
98+
default:
99+
expect.fail(`Could not detect env. Current env is ${process.env.AEGIR_RUNNER}`)
100+
break
63101
}
64102
})
65103

66104
it('isBrowser should have the correct value in each env', function () {
67-
if (env.isElectron) {
68-
return expect(env.isBrowser).to.be.false()
69-
}
70-
if (env.isElectronRenderer) {
71-
return expect(env.isBrowser).to.be.false()
72-
}
73-
if (env.isBrowser) {
74-
return expect(env.isBrowser).to.be.true()
75-
}
76-
if (env.isNode) {
77-
return expect(env.isBrowser).to.be.false()
78-
}
79-
if (env.isWebWorker) {
80-
return expect(env.isBrowser).to.be.false()
105+
switch (process.env.AEGIR_RUNNER) {
106+
case 'electron-main':
107+
expect(env.isBrowser).to.be.false()
108+
break
109+
case 'electron-renderer':
110+
expect(env.isBrowser).to.be.false()
111+
break
112+
case 'node':
113+
expect(env.isBrowser).to.be.false()
114+
break
115+
case 'browser':
116+
expect(env.isBrowser).to.be.true()
117+
break
118+
case 'webworker':
119+
expect(env.isBrowser).to.be.false()
120+
break
121+
default:
122+
expect.fail(`Could not detect env. Current env is ${process.env.AEGIR_RUNNER}`)
123+
break
81124
}
82125
})
83126

84127
it('isWebWorker should have the correct value in each env', function () {
85-
if (env.isElectron) {
86-
return expect(env.isWebWorker).to.be.false()
87-
}
88-
if (env.isElectronRenderer) {
89-
return expect(env.isWebWorker).to.be.false()
90-
}
91-
if (env.isBrowser) {
92-
return expect(env.isWebWorker).to.be.false()
93-
}
94-
if (env.isNode) {
95-
return expect(env.isWebWorker).to.be.false()
96-
}
97-
if (env.isWebWorker) {
98-
return expect(env.isWebWorker).to.be.true()
128+
switch (process.env.AEGIR_RUNNER) {
129+
case 'electron-main':
130+
expect(env.isWebWorker).to.be.false()
131+
break
132+
case 'electron-renderer':
133+
expect(env.isWebWorker).to.be.false()
134+
break
135+
case 'node':
136+
expect(env.isWebWorker).to.be.false()
137+
break
138+
case 'browser':
139+
expect(env.isWebWorker).to.be.false()
140+
break
141+
case 'webworker':
142+
expect(env.isWebWorker).to.be.true()
143+
break
144+
default:
145+
expect.fail(`Could not detect env. Current env is ${process.env.AEGIR_RUNNER}`)
146+
break
99147
}
100148
})
101149
})

test/files/normalise-input.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ async function verifyNormalisation (input) {
3232
expect(input.length).to.equal(1)
3333

3434
if (!input[0].content[Symbol.asyncIterator] && !input[0].content[Symbol.iterator]) {
35-
chai.assert.fail(`Content should have been an iterable or an async iterable`)
35+
chai.assert.fail('Content should have been an iterable or an async iterable')
3636
}
3737

3838
expect(await all(input[0].content)).to.deep.equal([BUFFER])

0 commit comments

Comments
 (0)