-
Notifications
You must be signed in to change notification settings - Fork 0
/
browsertest.js
31 lines (27 loc) · 961 Bytes
/
browsertest.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
var Browser = require('zombie'),
assert = require('assert'),
growl = require('growl'),
defaultFailureMessage = 'Tests failed!';
function mochaPredicate (browser) {
var failures = browser.text("li.failures em");
var passes = browser.text("li.passes em");
var errors = browser.html('div.test.fail h2, div.test.fail pre.error');
var result = parseInt(failures) === 0;
var message = "Failures: " + failures + "\n" +
"Passes: " + passes + "\n" +
errors;
return {result: result, message: message};
}
module.exports.browsertest = function (options) {
var browser = new Browser();
options.pagePredicate = options.pagePredicate || mochaPredicate;
options.failedMessage = options.failedMessage || defaultFailureMessage;
browser.visit(options.url, function () {
var result = options.pagePredicate(browser);
if (!result.result) {
growl(options.failedMessage);
assert.ok(result.result, result.message);
}
options.callback();
});
};