Simon Priet 9e2991e668 init
2021-09-05 22:53:58 +02:00

85 lines
1.8 KiB
JavaScript

var test = require("tap").test;
var chain = require('../../');
var produce = require('../produce.js');
test("stack extend part", function (t) {
var modify = function (text) {
return function (error, frames) {
if (error.test) {
frames.splice(1, 0, text);
}
return frames;
};
};
t.test("no extend modifier attached", function (t) {
t.equal(produce.real(3), produce.fake([
'Error: trace',
' at {where}:18:17',
' at deepStack ({where}:5:5)',
' at deepStack ({where}:7:5)'
]));
t.end();
});
t.test("attach modifier", function (t) {
var wonderLand = modify("wonder land");
chain.extend.attach(wonderLand);
t.equal(produce.real(3), produce.fake([
'Error: trace',
' at {where}:18:17',
' at wonder land',
' at deepStack ({where}:5:5)'
]));
chain.extend.deattach(wonderLand);
t.end();
});
t.test("deattach modifier", function (t) {
var wonderLand = modify("wonder land");
chain.extend.attach(wonderLand);
t.equal(chain.extend.deattach(wonderLand), true);
t.equal(produce.real(3), produce.fake([
'Error: trace',
' at {where}:18:17',
' at deepStack ({where}:5:5)',
' at deepStack ({where}:7:5)'
]));
t.equal(chain.extend.deattach(wonderLand), false);
t.end();
});
t.test("execution order", function (t) {
var wonderLand = modify("wonder land");
var outerSpace = modify("outer space");
chain.extend.attach(wonderLand);
chain.extend.attach(outerSpace);
t.equal(produce.real(3), produce.fake([
'Error: trace',
' at {where}:18:17',
' at outer space',
' at wonder land'
]));
chain.extend.deattach(wonderLand);
chain.extend.deattach(outerSpace);
t.end();
});
t.end();
});