From 4ae0b27773bc43f3a951d1a6c98a30fc9704af26 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Sat, 22 Dec 2018 08:53:36 -0700 Subject: [PATCH] refactor openExterna spec to fix side effects --- spec/api-shell-spec.js | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/spec/api-shell-spec.js b/spec/api-shell-spec.js index 79f23d916a318..bded2356a330d 100644 --- a/spec/api-shell-spec.js +++ b/spec/api-shell-spec.js @@ -17,7 +17,24 @@ describe('shell module', () => { } describe('shell.openExternal()', () => { - it('opens an external link', function (done) { + let envVars = {} + + beforeEach(() => { + // keep original process.env values to prevent side effect + envVars = { + display: process.env.DISPLAY, + de: process.env.DE, + browser: process.env.BROWSER + } + }) + + afterEach(() => { + process.env.BROWSER = envVars.browser + process.env.DE = envVars.de + process.env.DISPLAY = envVars.browser + }) + + it('opens an external link asynchronously', function (done) { if (process.platform !== 'linux') this.skip() // set env vars for xdg-open @@ -28,25 +45,18 @@ describe('shell module', () => { shell.openExternal(url).then(() => done()) }) - }) - describe('shell.openExternalSync()', () => { - it('opens an external link', function () { + it('opens an external link synchronously', function () { if (process.platform !== 'linux') this.skip() + // set env vars for xdg-open + const url = 'http://www.example.com' process.env.DE = 'generic' - const tests = [ - { BROWSER: '/bin/true', expected: true }, - { BROWSER: '/bin/false', expected: false } - ] - - for (const test of tests) { - const { BROWSER, expected } = test - process.env.DISPLAY = '' - process.env.BROWSER = BROWSER - const actual = shell.openExternalSync('http://www.example.com') - assert.strictEqual(expected, actual) - } + process.env.BROWSER = '/bin/true' + process.env.DISPLAY = '' + + const success = shell.openExternalSync(url) + assert.strictEqual(true, success) }) })