UNPKG

a_mock

Version:

Sub package of a. Mocking framework

71 lines (53 loc) 1.96 kB
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 originalFallback = newMock(); var sut = newSut(originalFallback); var didIncrementStackTrace var originalStackTraceLimit = Error.stackTraceLimit; (function() { console.log('execute'); var arg = {}; var expected = {}; originalFallback.expect(arg).whenCalled(onFallback).return(expected); var returned = sut(arg); test('it increments stack trace limit by two before executing fallback', function() { assert.ok(didIncrementStackTrace,expected); }); test('it should result from originalFallback',function() { assert.equal(returned,expected); }); test('it resets stack trace limit', function() { assert.equal(Error.stackTraceLimit,originalStackTraceLimit); }); (function() { console.log('setFallback'); var fallback = newMock(); sut.setFallback(fallback); (function() { console.log('execute'); didIncrementStackTrace = false; var expected = {}; fallback.expect(arg).whenCalled(onFallback).return(expected); var returned = sut(arg); test('it increments stack trace limit by two before executing fallback', function() { assert.ok(didIncrementStackTrace); }); test('it should return result from new fallback',function() { assert.equal(returned,expected); }); test('it resets stack trace limit', function() { assert.equal(Error.stackTraceLimit,originalStackTraceLimit); }); })(); })(); })(); function onFallback() { didIncrementStackTrace = (Error.stackTraceLimit == originalStackTraceLimit + 2); } })();