a_mock
Version:
Sub package of a. Mocking framework
49 lines (40 loc) • 1.3 kB
JavaScript
var assert = require('assert');
var test = require('../../test');
var newMock = require('../simple/newMock');
var newRequireMock = require('../simple/newRequireMock');
var getStackTrace = newRequireMock('./fallbackWrapper/getStackTrace');
var newSut = require('../newFallbackWrapper');
(function() {
console.log('newFallbackWrapper');
var sut = newSut(originalFallback);
var didIncrementStackTrace
var originalStackTraceLimit = Error.stackTraceLimit;
var originalTrace = 'origTrace';
function originalFallback() {
didIncrementStackTrace = (Error.stackTraceLimit == originalStackTraceLimit + 2);
var e = new Error('other');
e.stack = originalTrace;
throw e;
}
(function() {
console.log('execute with mock error');
var arg = {};
var error;
try {
sut(arg);
}
catch(e) {
console.log('foo: ' + e.stack);
error = e;
}
test('it increments stack trace limit by two before executing fallback', function() {
assert.ok(didIncrementStackTrace);
});
test('it should not change stack on error',function() {
assert.equal(error.stack,originalTrace);
});
test('it resets stack trace limit', function() {
assert.equal(Error.stackTraceLimit,originalStackTraceLimit);
});
})();
})();