Noob Node Warning: How do you programmatically set what config object to use when running a test?
Have been looking pretty hard for the definitive answer.
Setup:
/e2e-tests
|-globals.js
|-product.page.notify.stock.js
|-nightwatch.json
|-nightwatch
- nightwatch.json = setup
- nightwatch =
#!/usr/bin/env node require('nightwatch/bin/runner.js');
- e2e-tests/globals.js Overkill, and doesn't show implementation
- productpage.notify.stock.js
var SITE_URL = 'http://dev.local/', //this needs to be set somehow production||dev
AJAX_URL = 'ajaxproc/getrandomoutofstock', //relative so this doesn't need to change
select = '#mysize',
emailError = '.error-message',
outOfStockItem = {
id: false,
url: false
};
module.exports = {
'Get backorder stock url': function(browser) {
browser.url(SITEURL + AJAX_URL)
// ommitted for brevity
},
'Check notify stock on product page': function(client) {
client.url(SITE_URL + outOfStockItem.url);
// ommitted for brevity
},
// remaining test stuff - not needed
};
I have seen this method here by MateuszJeziorski but omits the means to get the process arguments. The examples provided with nightwatch don't answer this question either. I think the end result of the command would look something like this:
nightwatch -somekindofparametertosetenvironment -t e2e-tests/product.page.notify.stock