Convert clearStack from a function to an object
This commit is contained in:
@@ -1181,7 +1181,7 @@ describe('Env integration', function() {
|
||||
global: {
|
||||
setTimeout: function(cb, t) {
|
||||
const stack = new Error().stack;
|
||||
if (stack.indexOf('ClearStack') >= 0) {
|
||||
if (stack.indexOf('clearStack') >= 0) {
|
||||
return realSetTimeout(cb, t);
|
||||
} else {
|
||||
return setTimeout(cb, t);
|
||||
@@ -3259,13 +3259,11 @@ describe('Env integration', function() {
|
||||
});
|
||||
|
||||
it('is resolved after the stack is cleared', function(done) {
|
||||
const realClearStack = privateUnderTest.getClearStack(
|
||||
jasmineUnderTest.getGlobal()
|
||||
),
|
||||
clearStackSpy = jasmine
|
||||
.createSpy('clearStack')
|
||||
.and.callFake(realClearStack);
|
||||
spyOn(privateUnderTest, 'getClearStack').and.returnValue(clearStackSpy);
|
||||
const stackClearer = privateUnderTest.getStackClearer(
|
||||
jasmineUnderTest.getGlobal()
|
||||
);
|
||||
spyOn(stackClearer, 'clearStack').and.callThrough();
|
||||
spyOn(privateUnderTest, 'getStackClearer').and.returnValue(stackClearer);
|
||||
|
||||
// Create a new env that has the clearStack defined above
|
||||
env.cleanup_();
|
||||
@@ -3276,10 +3274,10 @@ describe('Env integration', function() {
|
||||
});
|
||||
|
||||
env.execute(null).then(function() {
|
||||
expect(clearStackSpy).toHaveBeenCalled(); // (many times)
|
||||
clearStackSpy.calls.reset();
|
||||
expect(stackClearer.clearStack).toHaveBeenCalled(); // (many times)
|
||||
stackClearer.clearStack.calls.reset();
|
||||
setTimeout(function() {
|
||||
expect(clearStackSpy).not.toHaveBeenCalled();
|
||||
expect(stackClearer.clearStack).not.toHaveBeenCalled();
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -3368,13 +3366,11 @@ describe('Env integration', function() {
|
||||
});
|
||||
|
||||
it('is called after the stack is cleared', async function() {
|
||||
const realClearStack = privateUnderTest.getClearStack(
|
||||
jasmineUnderTest.getGlobal()
|
||||
),
|
||||
clearStackSpy = jasmine
|
||||
.createSpy('clearStack')
|
||||
.and.callFake(realClearStack);
|
||||
spyOn(privateUnderTest, 'getClearStack').and.returnValue(clearStackSpy);
|
||||
const stackClearer = privateUnderTest.getStackClearer(
|
||||
jasmineUnderTest.getGlobal()
|
||||
);
|
||||
spyOn(stackClearer, 'clearStack').and.callThrough();
|
||||
spyOn(privateUnderTest, 'getStackClearer').and.returnValue(stackClearer);
|
||||
|
||||
// Create a new env that has the clearStack defined above
|
||||
env.cleanup_();
|
||||
@@ -3386,12 +3382,12 @@ describe('Env integration', function() {
|
||||
|
||||
await env.execute();
|
||||
|
||||
expect(clearStackSpy).toHaveBeenCalled(); // (many times)
|
||||
clearStackSpy.calls.reset();
|
||||
expect(stackClearer.clearStack).toHaveBeenCalled(); // (many times)
|
||||
stackClearer.clearStack.calls.reset();
|
||||
|
||||
await new Promise(resolve => setTimeout(resolve));
|
||||
|
||||
expect(clearStackSpy).not.toHaveBeenCalled();
|
||||
expect(stackClearer.clearStack).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('is called after QueueRunner timeouts are cleared', async function() {
|
||||
|
||||
@@ -167,10 +167,11 @@ describe('Global error handling (integration)', function() {
|
||||
}
|
||||
};
|
||||
|
||||
const realClearStack = privateUnderTest.getClearStack(global);
|
||||
const stackClearer = privateUnderTest.getStackClearer(global);
|
||||
const realClearStack = stackClearer.clearStack;
|
||||
const clearStackCallbacks = {};
|
||||
let clearStackCallCount = 0;
|
||||
spyOn(privateUnderTest, 'getClearStack').and.returnValue(function(fn) {
|
||||
spyOn(stackClearer, 'clearStack').and.callFake(function(fn) {
|
||||
clearStackCallCount++;
|
||||
|
||||
if (clearStackCallbacks[clearStackCallCount]) {
|
||||
@@ -179,6 +180,9 @@ describe('Global error handling (integration)', function() {
|
||||
|
||||
realClearStack(fn);
|
||||
});
|
||||
spyOn(privateUnderTest, 'getStackClearer').and.returnValue(
|
||||
stackClearer
|
||||
);
|
||||
|
||||
env.cleanup_();
|
||||
env = new privateUnderTest.Env({ global });
|
||||
@@ -282,10 +286,11 @@ describe('Global error handling (integration)', function() {
|
||||
}
|
||||
};
|
||||
|
||||
const realClearStack = privateUnderTest.getClearStack(global);
|
||||
const stackClearer = privateUnderTest.getStackClearer(global);
|
||||
const realClearStack = stackClearer.clearStack;
|
||||
const clearStackCallbacks = {};
|
||||
let clearStackCallCount = 0;
|
||||
spyOn(privateUnderTest, 'getClearStack').and.returnValue(function(fn) {
|
||||
spyOn(stackClearer, 'clearStack').and.callFake(function(fn) {
|
||||
clearStackCallCount++;
|
||||
|
||||
if (clearStackCallbacks[clearStackCallCount]) {
|
||||
@@ -294,6 +299,9 @@ describe('Global error handling (integration)', function() {
|
||||
|
||||
realClearStack(fn);
|
||||
});
|
||||
spyOn(privateUnderTest, 'getStackClearer').and.returnValue(
|
||||
stackClearer
|
||||
);
|
||||
|
||||
env.cleanup_();
|
||||
env = new privateUnderTest.Env({ global });
|
||||
@@ -391,12 +399,13 @@ describe('Global error handling (integration)', function() {
|
||||
}
|
||||
};
|
||||
|
||||
const realClearStack = privateUnderTest.getClearStack(global);
|
||||
const stackClearer = privateUnderTest.getStackClearer(global);
|
||||
const realClearStack = stackClearer.clearStack;
|
||||
let clearStackCallCount = 0;
|
||||
let jasmineDone = false;
|
||||
const expectedErrors = [];
|
||||
const expectedErrorsAfterJasmineDone = [];
|
||||
spyOn(privateUnderTest, 'getClearStack').and.returnValue(function(fn) {
|
||||
spyOn(stackClearer, 'clearStack').and.callFake(function(fn) {
|
||||
clearStackCallCount++;
|
||||
const msg = `Error in clearStack #${clearStackCallCount}`;
|
||||
|
||||
@@ -409,6 +418,7 @@ describe('Global error handling (integration)', function() {
|
||||
dispatchErrorEvent(global, 'error', { error: msg });
|
||||
realClearStack(fn);
|
||||
});
|
||||
spyOn(privateUnderTest, 'getStackClearer').and.returnValue(stackClearer);
|
||||
spyOn(console, 'error');
|
||||
|
||||
env.cleanup_();
|
||||
@@ -507,10 +517,11 @@ describe('Global error handling (integration)', function() {
|
||||
}
|
||||
};
|
||||
|
||||
const realClearStack = privateUnderTest.getClearStack(global);
|
||||
const stackClearer = privateUnderTest.getStackClearer(global);
|
||||
const realClearStack = stackClearer.clearStack;
|
||||
const clearStackCallbacks = {};
|
||||
let clearStackCallCount = 0;
|
||||
spyOn(privateUnderTest, 'getClearStack').and.returnValue(function(fn) {
|
||||
spyOn(stackClearer, 'clearStack').and.callFake(function(fn) {
|
||||
clearStackCallCount++;
|
||||
|
||||
if (clearStackCallbacks[clearStackCallCount]) {
|
||||
@@ -519,6 +530,9 @@ describe('Global error handling (integration)', function() {
|
||||
|
||||
realClearStack(fn);
|
||||
});
|
||||
spyOn(privateUnderTest, 'getStackClearer').and.returnValue(
|
||||
stackClearer
|
||||
);
|
||||
|
||||
env.cleanup_();
|
||||
env = new privateUnderTest.Env({ global });
|
||||
@@ -624,10 +638,11 @@ describe('Global error handling (integration)', function() {
|
||||
}
|
||||
};
|
||||
|
||||
const realClearStack = privateUnderTest.getClearStack(global);
|
||||
const stackClearer = privateUnderTest.getStackClearer(global);
|
||||
const realClearStack = stackClearer.clearStack;
|
||||
const clearStackCallbacks = {};
|
||||
let clearStackCallCount = 0;
|
||||
spyOn(privateUnderTest, 'getClearStack').and.returnValue(function(fn) {
|
||||
spyOn(stackClearer, 'clearStack').and.callFake(function(fn) {
|
||||
clearStackCallCount++;
|
||||
|
||||
if (clearStackCallbacks[clearStackCallCount]) {
|
||||
@@ -636,6 +651,9 @@ describe('Global error handling (integration)', function() {
|
||||
|
||||
realClearStack(fn);
|
||||
});
|
||||
spyOn(privateUnderTest, 'getStackClearer').and.returnValue(
|
||||
stackClearer
|
||||
);
|
||||
|
||||
env.cleanup_();
|
||||
env = new privateUnderTest.Env({ global });
|
||||
@@ -735,12 +753,13 @@ describe('Global error handling (integration)', function() {
|
||||
}
|
||||
};
|
||||
|
||||
const realClearStack = privateUnderTest.getClearStack(global);
|
||||
const stackClearer = privateUnderTest.getStackClearer(global);
|
||||
const realClearStack = stackClearer.clearStack;
|
||||
let clearStackCallCount = 0;
|
||||
let jasmineDone = false;
|
||||
const expectedErrors = [];
|
||||
const expectedErrorsAfterJasmineDone = [];
|
||||
spyOn(privateUnderTest, 'getClearStack').and.returnValue(function(fn) {
|
||||
spyOn(stackClearer, 'clearStack').and.callFake(function(fn) {
|
||||
clearStackCallCount++;
|
||||
const reason = `Error in clearStack #${clearStackCallCount}`;
|
||||
const expectedMsg = `Unhandled promise rejection: ${reason} thrown`;
|
||||
@@ -754,6 +773,7 @@ describe('Global error handling (integration)', function() {
|
||||
dispatchErrorEvent(global, 'unhandledrejection', { reason });
|
||||
realClearStack(fn);
|
||||
});
|
||||
spyOn(privateUnderTest, 'getStackClearer').and.returnValue(stackClearer);
|
||||
spyOn(console, 'error');
|
||||
|
||||
env.cleanup_();
|
||||
|
||||
Reference in New Issue
Block a user