stackedy
Version:
Roll your own stack traces and control program execution through AST manipulation
63 lines (55 loc) • 1.55 kB
JavaScript
var stackedy = require('../');
var test = require('tap').test;
test('defun toString()', function (t) {
t.plan(1);
var src = '(' + function () {
function plusTen () { return x + 10 };
t.equal(
plusTen.toString()
.replace(/\s+/g, ''),
'function plusTen () { return x + 10 }'
.replace(/\s+/g, '')
);
} + ')()';
var stack = stackedy(src).run({ t : t });
stack.on('error', function (err, c) {
stack.stop();
t.fail(err);
});
});
test('fn toString()', function (t) {
t.plan(1);
var src = '(' + function () {
t.equal(
(function () { return x + 10 }).toString()
.replace(/\s+/g, ''),
'function () { return x + 10 }'
.replace(/\s+/g, '')
);
} + ')()';
var stack = stackedy(src).run({ t : t });
stack.on('error', function (err, c) {
stack.stop();
t.fail(err);
});
});
test('expr fn toString()', function (t) {
t.plan(1);
var src = '(' + function () {
log((function (win) {
console.log('window!')
}).toString());
} + ')()';
var stack = stackedy(src).run({
log : function (msg) {
t.equal(
msg.replace(/\s+/g, ''),
"function (win) { console.log('window!') }".replace(/\s+/g, '')
);
}
});
stack.on('error', function (err, c) {
stack.stop();
t.fail(err);
});
});