Improve the way to skip tests on specific condition

This commit is contained in:
Yuya Ochiai
2016-06-25 17:05:51 +09:00
parent 580bebdc66
commit 08aca0f235
2 changed files with 33 additions and 34 deletions

View File

@@ -35,12 +35,11 @@ module.exports = {
chaiAsPromised.transferPromiseness = app.transferPromiseness chaiAsPromised.transferPromiseness = app.transferPromiseness
return app; return app;
}, },
shouldTestForPlatforms: function(testCase, platforms) { // execute the test only when `condition` is true
if (platforms.indexOf(process.platform) !== -1) { shouldTest: function(it, condition) {
return; return condition ? it : it.skip;
} },
else { isOneOf(platforms) {
testCase.skip(); return (platforms.indexOf(process.platform) !== -1);
}
} }
} }

View File

@@ -68,33 +68,33 @@ describe('browser/settings.html', function() {
}); });
[true, false].forEach(function(v) { [true, false].forEach(function(v) {
it(`should be saved and loaded: ${v}`, function() { env.shouldTest(it, env.isOneOf(['win32', 'linux']))
env.shouldTestForPlatforms(this, ['win32', 'linux']); (`should be saved and loaded: ${v}`, function() {
addClientCommands(this.app.client); addClientCommands(this.app.client);
return this.app.client return this.app.client
.loadSettingsPage() .loadSettingsPage()
.isSelected('#inputHideMenuBar input').then((isSelected) => { .isSelected('#inputHideMenuBar input').then((isSelected) => {
if (isSelected !== v) { if (isSelected !== v) {
return this.app.client.click('#inputHideMenuBar input') return this.app.client.click('#inputHideMenuBar input')
} }
}) })
.click('#btnSave') .click('#btnSave')
.pause(1000).then(() => { .pause(1000).then(() => {
const saved_config = JSON.parse(fs.readFileSync(env.configFilePath, 'utf8')); const saved_config = JSON.parse(fs.readFileSync(env.configFilePath, 'utf8'));
saved_config.hideMenuBar.should.equal(v); saved_config.hideMenuBar.should.equal(v);
}) })
// confirm actual behavior // confirm actual behavior
.browserWindow.isMenuBarAutoHide().should.eventually.equal(v).then(() => { .browserWindow.isMenuBarAutoHide().should.eventually.equal(v).then(() => {
return this.app.restart(); return this.app.restart();
}).then(() => { }).then(() => {
addClientCommands(this.app.client); addClientCommands(this.app.client);
return this.app.client return this.app.client
// confirm actual behavior // confirm actual behavior
.browserWindow.isMenuBarAutoHide().should.eventually.equal(v) .browserWindow.isMenuBarAutoHide().should.eventually.equal(v)
.loadSettingsPage() .loadSettingsPage()
.isSelected('#inputHideMenuBar input').should.eventually.equal(v); .isSelected('#inputHideMenuBar input').should.eventually.equal(v);
}); });
}); });
}); });
}); });