Skip to content

Commit

Permalink
show at locations in errors
Browse files Browse the repository at this point in the history
  • Loading branch information
James Halliday committed Jan 18, 2013
1 parent 1786bcc commit 35ba8a3
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 2 deletions.
3 changes: 3 additions & 0 deletions lib/render.js
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,9 @@ function encodeResult (res, count) {
output += inner + 'expected: ' + ex + '\n';
output += inner + 'actual: ' + ac + '\n';
}
if (res.at) {
output += inner + 'at: ' + res.at + '\n';
}
if (res.operator === 'error' && res.actual && res.actual.stack) {
var lines = String(res.actual.stack).split('\n');
output += inner + 'stack:\n';
Expand Down
26 changes: 25 additions & 1 deletion lib/test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
var EventEmitter = require('events').EventEmitter;
var deepEqual = require('deep-equal');
var defined = require('defined');
var path = require('path');

module.exports = Test;

Expand Down Expand Up @@ -102,14 +103,37 @@ Test.prototype._assert = function assert (ok, opts) {
name : defined(extra.message, opts.message, '(unnamed assert)'),
operator : defined(extra.operator, opts.operator),
actual : defined(extra.actual, opts.actual),
expected : defined(extra.expected, opts.expected)
expected : defined(extra.expected, opts.expected),
};
this._ok = Boolean(this._ok && ok);

if (!ok) {
res.error = defined(extra.error, opts.error, new Error(res.name));
}

var e = new Error('exception');
var err = (e.stack || '').split('\n');
var dir = path.dirname(__dirname) + '/';

for (var i = 0; i < err.length; i++) {
var m = /^\s*\bat\s+(.+)/.exec(err[i]);
if (!m) continue;

var s = m[1].split(/\s+/);
var filem = /(\/[^:\s]+:(\d+)(?::(\d+))?)/.exec(s[1]);
if (!filem) continue;

if (filem[1].slice(0, dir.length) === dir) continue;

res.functionName = s[0];
res.file = filem[1];
res.line = Number(filem[2]);
if (filem[3]) res.column = filem[3];

res.at = m[1];
break;
}

self.emit('result', res);

if (self._plan === self.assertCount) {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name" : "tape",
"version" : "0.1.5",
"version" : "0.2.0",
"description" : "tap-producing test harness for node and browsers",
"main" : "index.js",
"bin" : {},
Expand Down

0 comments on commit 35ba8a3

Please sign in to comment.