tape-watcher
Version:
Runs tape tests when files change and prints a pretty output
56 lines (47 loc) • 1.72 kB
JavaScript
;
var failureLocation = require('./get-failure-location');
module.exports = {
nonDefaultAssertionName: nonDefaultAssertionName,
assertMapper: assertMapper,
getTestName: getTestName
};
function assertMapper(dirname, testNames, assertion) {
var assertionName = nonDefaultAssertionName(assertion.name, assertion.operator);
var testName = testNames[assertion.test];
var name = assertionName ? testName.concat(assertionName) : testName;
var at = failureLocation(dirname, assertion.error.stack);
return {
ok: assertion.ok,
name: name,
operator: assertion.operator,
actual: assertion.actual,
expected: assertion.expected,
at: at
};
}
function getTestName(test, testNames) {
return typeof test.parent === 'number' ? testNames[test.parent].concat(test.name) : [test.name];
}
/**
* If no assertion name is set, tape sets a default one.
* I find it irrelevant, so I'd rather just have undefined in this cases
*/
function nonDefaultAssertionName(assertionName, operator) {
var defaultNames = {
'ok': ['should be truthy'],
'notOk': ['should be falsy'],
'equal': ['should be equal'],
'notEqual': ['should not be equal'],
'deepEqual': ['should be equivalent'],
'deepLooseEqual': ['should be equivalent'],
'notDeepEqual': ['should not be equivalent'],
'notDeepLooseEqual': ['should be equivalent'],
'throws': ['should throw', 'should not throw']
};
var matchingName = defaultNames[operator];
if (matchingName && matchingName.indexOf(assertionName) > -1) {
return undefined;
} else {
return assertionName;
}
}