Skip to content

Commit ac7e416

Browse files
committed
Better integration test assertions (assert stack depth > 1)
1 parent 39c6a5b commit ac7e416

File tree

1 file changed

+6
-49
lines changed

1 file changed

+6
-49
lines changed

test/integration/test.js

Lines changed: 6 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -24,52 +24,9 @@ function createIframe(done) {
2424
}
2525

2626
describe('integration', function () {
27-
var timeoutStackDepth = 0;
28-
var eventHandlerStackDepth = 0;
29-
30-
before(function (done) {
31-
// Before running any tests, throw/catch a known error
32-
// inside setTimeout to get a baseline expected stack
33-
// depth for future errors (this is different in every
34-
// browser).
35-
var iframe = createIframe(function () {
36-
iframe.contentWindow.setTimeout(function () {
37-
try {
38-
iframe.contentWindow.foo();
39-
} catch (e) {
40-
var trace = Raven.TraceKit.computeStackTrace(e);
41-
timeoutStackDepth = trace.stack.length;
42-
}
43-
44-
var doc = iframe.contentWindow.document;
45-
var div = doc.createElement('div');
46-
doc.body.appendChild(div);
47-
div.addEventListener('click', function () {
48-
try {
49-
foo();
50-
} catch (e) {
51-
var trace = Raven.TraceKit.computeStackTrace(e);
52-
eventHandlerStackDepth = trace.stack.length;
53-
}
54-
}, false);
55-
56-
var evt;
57-
if (doc.createEvent) {
58-
evt = doc.createEvent('MouseEvents');
59-
evt.initEvent('click', true, false);
60-
div.dispatchEvent(evt);
61-
} else if(doc.createEventObject) {
62-
div.fireEvent('onclick');
63-
}
64-
65-
document.body.removeChild(iframe);
66-
done();
67-
});
68-
});
69-
});
7027

7128
beforeEach(function (done) {
72-
var iframe = this.iframe = createIframe(done);
29+
this.iframe = createIframe(done);
7330
});
7431

7532
afterEach(function () {
@@ -136,7 +93,7 @@ describe('integration', function () {
13693
},
13794
function () {
13895
var ravenData = iframe.contentWindow.ravenData;
139-
assert.equal(ravenData.exception.values[0].stacktrace.frames.length, eventHandlerStackDepth + 1);
96+
assert.isAbove(ravenData.exception.values[0].stacktrace.frames.length, 2);
14097
}
14198
);
14299
});
@@ -182,7 +139,7 @@ describe('integration', function () {
182139
},
183140
function () {
184141
var ravenData = iframe.contentWindow.ravenData;
185-
assert.equal(ravenData.exception.values[0].stacktrace.frames.length, timeoutStackDepth);
142+
assert.isAbove(ravenData.exception.values[0].stacktrace.frames.length, 2);
186143
}
187144
);
188145
});
@@ -200,7 +157,7 @@ describe('integration', function () {
200157
},
201158
function () {
202159
var ravenData = iframe.contentWindow.ravenData;
203-
assert.equal(ravenData.exception.values[0].stacktrace.frames.length, timeoutStackDepth);
160+
assert.isAbove(ravenData.exception.values[0].stacktrace.frames.length, 2);
204161
}
205162
);
206163
});
@@ -219,7 +176,7 @@ describe('integration', function () {
219176
},
220177
function () {
221178
var ravenData = iframe.contentWindow.ravenData;
222-
assert.equal(ravenData.exception.values[0].stacktrace.frames.length, timeoutStackDepth);
179+
assert.isAbove(ravenData.exception.values[0].stacktrace.frames.length, 2);
223180
}
224181
);
225182
});
@@ -241,7 +198,7 @@ describe('integration', function () {
241198
var ravenData = iframe.contentWindow.ravenData;
242199
console.log(ravenData);
243200
// # of frames alter significantly between chrome/firefox & safari
244-
assert.isTrue(ravenData.exception.values[0].stacktrace.frames.length >= 4);
201+
assert.isAbove(ravenData.exception.values[0].stacktrace.frames.length, 2);
245202
}
246203
);
247204
});

0 commit comments

Comments
 (0)