Skip to content

Commit bb8eb37

Browse files
committed
Core: Add memory to the error event to allow late event listeners
Cherry-picked from 15acb36 (3.0.0-dev). > HTML Reporter: Add support for displaying early errors > Ref #1786.
1 parent 01f7780 commit bb8eb37

File tree

3 files changed

+52
-1
lines changed

3 files changed

+52
-1
lines changed

src/events.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const SUPPORTED_EVENTS = [
1212
'runEnd'
1313
];
1414
const MEMORY_EVENTS = [
15+
'error',
1516
'runEnd'
1617
];
1718

@@ -40,7 +41,7 @@ export function emit (eventName, data) {
4041
callbacks[i](data);
4142
}
4243

43-
if (inArray(MEMORY_EVENTS, eventName)) {
44+
if (inArray(eventName, MEMORY_EVENTS)) {
4445
config._event_memory[eventName] = data;
4546
}
4647
}
+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
QUnit.on('error', function (error) {
2+
console.log(`# early error ${error}`);
3+
4+
setTimeout(function () {
5+
QUnit.on('error', function (error) {
6+
console.log(`# late error ${error}`);
7+
});
8+
});
9+
});
10+
11+
setTimeout(function () {
12+
boom();
13+
});
14+
15+
QUnit.module('First', function () {
16+
QUnit.test('A', function (assert) {
17+
assert.true(true);
18+
});
19+
QUnit.test('B', function (assert) {
20+
const done = assert.async();
21+
setTimeout(function () {
22+
assert.true(true);
23+
done();
24+
});
25+
});
26+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# command: ["qunit", "event-error-memory.js"]
2+
3+
TAP version 13
4+
not ok 1 global failure
5+
---
6+
message: ReferenceError: boom is not defined
7+
severity: failed
8+
stack: |
9+
ReferenceError: boom is not defined
10+
at /qunit/test/cli/fixtures/event-error-memory.js:12:3
11+
at internal
12+
...
13+
Bail out! ReferenceError: boom is not defined
14+
# early error ReferenceError: boom is not defined
15+
ok 2 First > A
16+
# late error ReferenceError: boom is not defined
17+
ok 3 First > B
18+
1..3
19+
# pass 2
20+
# skip 0
21+
# todo 0
22+
# fail 1
23+
24+
# exit code: 1

0 commit comments

Comments
 (0)