From 08aca0f2352e8da894e49efdf680f98ad303cb43 Mon Sep 17 00:00:00 2001 From: Yuya Ochiai Date: Sat, 25 Jun 2016 17:05:51 +0900 Subject: [PATCH] Improve the way to skip tests on specific condition --- test/modules/environment.js | 13 ++++--- test/specs/browser/settings_test.js | 54 ++++++++++++++--------------- 2 files changed, 33 insertions(+), 34 deletions(-) diff --git a/test/modules/environment.js b/test/modules/environment.js index fac7b1f5..31cc229c 100644 --- a/test/modules/environment.js +++ b/test/modules/environment.js @@ -35,12 +35,11 @@ module.exports = { chaiAsPromised.transferPromiseness = app.transferPromiseness return app; }, - shouldTestForPlatforms: function(testCase, platforms) { - if (platforms.indexOf(process.platform) !== -1) { - return; - } - else { - testCase.skip(); - } + // execute the test only when `condition` is true + shouldTest: function(it, condition) { + return condition ? it : it.skip; + }, + isOneOf(platforms) { + return (platforms.indexOf(process.platform) !== -1); } } diff --git a/test/specs/browser/settings_test.js b/test/specs/browser/settings_test.js index ee4e2bb5..50ae4251 100644 --- a/test/specs/browser/settings_test.js +++ b/test/specs/browser/settings_test.js @@ -68,33 +68,33 @@ describe('browser/settings.html', function() { }); [true, false].forEach(function(v) { - it(`should be saved and loaded: ${v}`, function() { - env.shouldTestForPlatforms(this, ['win32', 'linux']); - addClientCommands(this.app.client); - return this.app.client - .loadSettingsPage() - .isSelected('#inputHideMenuBar input').then((isSelected) => { - if (isSelected !== v) { - return this.app.client.click('#inputHideMenuBar input') - } - }) - .click('#btnSave') - .pause(1000).then(() => { - const saved_config = JSON.parse(fs.readFileSync(env.configFilePath, 'utf8')); - saved_config.hideMenuBar.should.equal(v); - }) - // confirm actual behavior - .browserWindow.isMenuBarAutoHide().should.eventually.equal(v).then(() => { - return this.app.restart(); - }).then(() => { - addClientCommands(this.app.client); - return this.app.client - // confirm actual behavior - .browserWindow.isMenuBarAutoHide().should.eventually.equal(v) - .loadSettingsPage() - .isSelected('#inputHideMenuBar input').should.eventually.equal(v); - }); - }); + env.shouldTest(it, env.isOneOf(['win32', 'linux'])) + (`should be saved and loaded: ${v}`, function() { + addClientCommands(this.app.client); + return this.app.client + .loadSettingsPage() + .isSelected('#inputHideMenuBar input').then((isSelected) => { + if (isSelected !== v) { + return this.app.client.click('#inputHideMenuBar input') + } + }) + .click('#btnSave') + .pause(1000).then(() => { + const saved_config = JSON.parse(fs.readFileSync(env.configFilePath, 'utf8')); + saved_config.hideMenuBar.should.equal(v); + }) + // confirm actual behavior + .browserWindow.isMenuBarAutoHide().should.eventually.equal(v).then(() => { + return this.app.restart(); + }).then(() => { + addClientCommands(this.app.client); + return this.app.client + // confirm actual behavior + .browserWindow.isMenuBarAutoHide().should.eventually.equal(v) + .loadSettingsPage() + .isSelected('#inputHideMenuBar input').should.eventually.equal(v); + }); + }); }); });