mocha 10.3.0 → 10.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli/run.js +1 -1
- package/lib/reporters/base.js +60 -19
- package/lib/reporters/xunit.js +1 -0
- package/lib/runner.js +16 -5
- package/mocha.js +79 -26
- package/mocha.js.map +1 -1
- package/package.json +7 -10
package/lib/cli/run.js
CHANGED
|
@@ -369,7 +369,7 @@ exports.handler = async function (argv) {
|
|
|
369
369
|
try {
|
|
370
370
|
await runMocha(mocha, argv);
|
|
371
371
|
} catch (err) {
|
|
372
|
-
console.error('\n
|
|
372
|
+
console.error('\n Exception during run:', err);
|
|
373
373
|
process.exit(1);
|
|
374
374
|
}
|
|
375
375
|
};
|
package/lib/reporters/base.js
CHANGED
|
@@ -221,6 +221,56 @@ var generateDiff = (exports.generateDiff = function (actual, expected) {
|
|
|
221
221
|
}
|
|
222
222
|
});
|
|
223
223
|
|
|
224
|
+
/**
|
|
225
|
+
* Traverses err.cause and returns all stack traces
|
|
226
|
+
*
|
|
227
|
+
* @private
|
|
228
|
+
* @param {Error} err
|
|
229
|
+
* @param {Set<Error>} [seen]
|
|
230
|
+
* @return {FullErrorStack}
|
|
231
|
+
*/
|
|
232
|
+
var getFullErrorStack = function (err, seen) {
|
|
233
|
+
if (seen && seen.has(err)) {
|
|
234
|
+
return { message: '', msg: '<circular>', stack: '' };
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
var message;
|
|
238
|
+
|
|
239
|
+
if (typeof err.inspect === 'function') {
|
|
240
|
+
message = err.inspect() + '';
|
|
241
|
+
} else if (err.message && typeof err.message.toString === 'function') {
|
|
242
|
+
message = err.message + '';
|
|
243
|
+
} else {
|
|
244
|
+
message = '';
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
var msg;
|
|
248
|
+
var stack = err.stack || message;
|
|
249
|
+
var index = message ? stack.indexOf(message) : -1;
|
|
250
|
+
|
|
251
|
+
if (index === -1) {
|
|
252
|
+
msg = message;
|
|
253
|
+
} else {
|
|
254
|
+
index += message.length;
|
|
255
|
+
msg = stack.slice(0, index);
|
|
256
|
+
// remove msg from stack
|
|
257
|
+
stack = stack.slice(index + 1);
|
|
258
|
+
|
|
259
|
+
if (err.cause) {
|
|
260
|
+
seen = seen || new Set();
|
|
261
|
+
seen.add(err);
|
|
262
|
+
const causeStack = getFullErrorStack(err.cause, seen)
|
|
263
|
+
stack += '\n Caused by: ' + causeStack.msg + (causeStack.stack ? '\n' + causeStack.stack : '');
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
return {
|
|
268
|
+
message,
|
|
269
|
+
msg,
|
|
270
|
+
stack
|
|
271
|
+
};
|
|
272
|
+
};
|
|
273
|
+
|
|
224
274
|
/**
|
|
225
275
|
* Outputs the given `failures` as a list.
|
|
226
276
|
*
|
|
@@ -241,7 +291,6 @@ exports.list = function (failures) {
|
|
|
241
291
|
color('error stack', '\n%s\n');
|
|
242
292
|
|
|
243
293
|
// msg
|
|
244
|
-
var msg;
|
|
245
294
|
var err;
|
|
246
295
|
if (test.err && test.err.multiple) {
|
|
247
296
|
if (multipleTest !== test) {
|
|
@@ -252,25 +301,8 @@ exports.list = function (failures) {
|
|
|
252
301
|
} else {
|
|
253
302
|
err = test.err;
|
|
254
303
|
}
|
|
255
|
-
var message;
|
|
256
|
-
if (typeof err.inspect === 'function') {
|
|
257
|
-
message = err.inspect() + '';
|
|
258
|
-
} else if (err.message && typeof err.message.toString === 'function') {
|
|
259
|
-
message = err.message + '';
|
|
260
|
-
} else {
|
|
261
|
-
message = '';
|
|
262
|
-
}
|
|
263
|
-
var stack = err.stack || message;
|
|
264
|
-
var index = message ? stack.indexOf(message) : -1;
|
|
265
304
|
|
|
266
|
-
|
|
267
|
-
msg = message;
|
|
268
|
-
} else {
|
|
269
|
-
index += message.length;
|
|
270
|
-
msg = stack.slice(0, index);
|
|
271
|
-
// remove msg from stack
|
|
272
|
-
stack = stack.slice(index + 1);
|
|
273
|
-
}
|
|
305
|
+
var { message, msg, stack } = getFullErrorStack(err);
|
|
274
306
|
|
|
275
307
|
// uncaught
|
|
276
308
|
if (err.uncaught) {
|
|
@@ -548,3 +580,12 @@ function sameType(a, b) {
|
|
|
548
580
|
Base.consoleLog = consoleLog;
|
|
549
581
|
|
|
550
582
|
Base.abstract = true;
|
|
583
|
+
|
|
584
|
+
/**
|
|
585
|
+
* An object with all stack traces recursively mounted from each err.cause
|
|
586
|
+
* @memberof module:lib/reporters/base
|
|
587
|
+
* @typedef {Object} FullErrorStack
|
|
588
|
+
* @property {string} message
|
|
589
|
+
* @property {string} msg
|
|
590
|
+
* @property {string} stack
|
|
591
|
+
*/
|
package/lib/reporters/xunit.js
CHANGED
package/lib/runner.js
CHANGED
|
@@ -443,11 +443,22 @@ Runner.prototype.fail = function (test, err, force) {
|
|
|
443
443
|
err = thrown2Error(err);
|
|
444
444
|
}
|
|
445
445
|
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
446
|
+
// Filter the stack traces
|
|
447
|
+
if (!this.fullStackTrace) {
|
|
448
|
+
const alreadyFiltered = new Set();
|
|
449
|
+
let currentErr = err;
|
|
450
|
+
|
|
451
|
+
while (currentErr && currentErr.stack && !alreadyFiltered.has(currentErr)) {
|
|
452
|
+
alreadyFiltered.add(currentErr);
|
|
453
|
+
|
|
454
|
+
try {
|
|
455
|
+
currentErr.stack = stackFilter(currentErr.stack);
|
|
456
|
+
} catch (ignore) {
|
|
457
|
+
// some environments do not take kindly to monkeying with the stack
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
currentErr = currentErr.cause;
|
|
461
|
+
}
|
|
451
462
|
}
|
|
452
463
|
|
|
453
464
|
this.emit(constants.EVENT_TEST_FAIL, test, err);
|
package/mocha.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// mocha@10.
|
|
1
|
+
// mocha@10.4.0 in javascript ES2018
|
|
2
2
|
(function (global, factory) {
|
|
3
3
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
4
4
|
typeof define === 'function' && define.amd ? define(factory) :
|
|
@@ -14433,11 +14433,22 @@
|
|
|
14433
14433
|
err = thrown2Error(err);
|
|
14434
14434
|
}
|
|
14435
14435
|
|
|
14436
|
-
|
|
14437
|
-
|
|
14438
|
-
|
|
14439
|
-
|
|
14440
|
-
|
|
14436
|
+
// Filter the stack traces
|
|
14437
|
+
if (!this.fullStackTrace) {
|
|
14438
|
+
const alreadyFiltered = new Set();
|
|
14439
|
+
let currentErr = err;
|
|
14440
|
+
|
|
14441
|
+
while (currentErr && currentErr.stack && !alreadyFiltered.has(currentErr)) {
|
|
14442
|
+
alreadyFiltered.add(currentErr);
|
|
14443
|
+
|
|
14444
|
+
try {
|
|
14445
|
+
currentErr.stack = stackFilter(currentErr.stack);
|
|
14446
|
+
} catch (ignore) {
|
|
14447
|
+
// some environments do not take kindly to monkeying with the stack
|
|
14448
|
+
}
|
|
14449
|
+
|
|
14450
|
+
currentErr = currentErr.cause;
|
|
14451
|
+
}
|
|
14441
14452
|
}
|
|
14442
14453
|
|
|
14443
14454
|
this.emit(constants$1.EVENT_TEST_FAIL, test, err);
|
|
@@ -15468,6 +15479,56 @@
|
|
|
15468
15479
|
}
|
|
15469
15480
|
});
|
|
15470
15481
|
|
|
15482
|
+
/**
|
|
15483
|
+
* Traverses err.cause and returns all stack traces
|
|
15484
|
+
*
|
|
15485
|
+
* @private
|
|
15486
|
+
* @param {Error} err
|
|
15487
|
+
* @param {Set<Error>} [seen]
|
|
15488
|
+
* @return {FullErrorStack}
|
|
15489
|
+
*/
|
|
15490
|
+
var getFullErrorStack = function (err, seen) {
|
|
15491
|
+
if (seen && seen.has(err)) {
|
|
15492
|
+
return { message: '', msg: '<circular>', stack: '' };
|
|
15493
|
+
}
|
|
15494
|
+
|
|
15495
|
+
var message;
|
|
15496
|
+
|
|
15497
|
+
if (typeof err.inspect === 'function') {
|
|
15498
|
+
message = err.inspect() + '';
|
|
15499
|
+
} else if (err.message && typeof err.message.toString === 'function') {
|
|
15500
|
+
message = err.message + '';
|
|
15501
|
+
} else {
|
|
15502
|
+
message = '';
|
|
15503
|
+
}
|
|
15504
|
+
|
|
15505
|
+
var msg;
|
|
15506
|
+
var stack = err.stack || message;
|
|
15507
|
+
var index = message ? stack.indexOf(message) : -1;
|
|
15508
|
+
|
|
15509
|
+
if (index === -1) {
|
|
15510
|
+
msg = message;
|
|
15511
|
+
} else {
|
|
15512
|
+
index += message.length;
|
|
15513
|
+
msg = stack.slice(0, index);
|
|
15514
|
+
// remove msg from stack
|
|
15515
|
+
stack = stack.slice(index + 1);
|
|
15516
|
+
|
|
15517
|
+
if (err.cause) {
|
|
15518
|
+
seen = seen || new Set();
|
|
15519
|
+
seen.add(err);
|
|
15520
|
+
const causeStack = getFullErrorStack(err.cause, seen);
|
|
15521
|
+
stack += '\n Caused by: ' + causeStack.msg + (causeStack.stack ? '\n' + causeStack.stack : '');
|
|
15522
|
+
}
|
|
15523
|
+
}
|
|
15524
|
+
|
|
15525
|
+
return {
|
|
15526
|
+
message,
|
|
15527
|
+
msg,
|
|
15528
|
+
stack
|
|
15529
|
+
};
|
|
15530
|
+
};
|
|
15531
|
+
|
|
15471
15532
|
/**
|
|
15472
15533
|
* Outputs the given `failures` as a list.
|
|
15473
15534
|
*
|
|
@@ -15488,7 +15549,6 @@
|
|
|
15488
15549
|
color('error stack', '\n%s\n');
|
|
15489
15550
|
|
|
15490
15551
|
// msg
|
|
15491
|
-
var msg;
|
|
15492
15552
|
var err;
|
|
15493
15553
|
if (test.err && test.err.multiple) {
|
|
15494
15554
|
if (multipleTest !== test) {
|
|
@@ -15499,25 +15559,8 @@
|
|
|
15499
15559
|
} else {
|
|
15500
15560
|
err = test.err;
|
|
15501
15561
|
}
|
|
15502
|
-
var message;
|
|
15503
|
-
if (typeof err.inspect === 'function') {
|
|
15504
|
-
message = err.inspect() + '';
|
|
15505
|
-
} else if (err.message && typeof err.message.toString === 'function') {
|
|
15506
|
-
message = err.message + '';
|
|
15507
|
-
} else {
|
|
15508
|
-
message = '';
|
|
15509
|
-
}
|
|
15510
|
-
var stack = err.stack || message;
|
|
15511
|
-
var index = message ? stack.indexOf(message) : -1;
|
|
15512
15562
|
|
|
15513
|
-
|
|
15514
|
-
msg = message;
|
|
15515
|
-
} else {
|
|
15516
|
-
index += message.length;
|
|
15517
|
-
msg = stack.slice(0, index);
|
|
15518
|
-
// remove msg from stack
|
|
15519
|
-
stack = stack.slice(index + 1);
|
|
15520
|
-
}
|
|
15563
|
+
var { message, msg, stack } = getFullErrorStack(err);
|
|
15521
15564
|
|
|
15522
15565
|
// uncaught
|
|
15523
15566
|
if (err.uncaught) {
|
|
@@ -15795,6 +15838,15 @@
|
|
|
15795
15838
|
Base.consoleLog = consoleLog;
|
|
15796
15839
|
|
|
15797
15840
|
Base.abstract = true;
|
|
15841
|
+
|
|
15842
|
+
/**
|
|
15843
|
+
* An object with all stack traces recursively mounted from each err.cause
|
|
15844
|
+
* @memberof module:lib/reporters/base
|
|
15845
|
+
* @typedef {Object} FullErrorStack
|
|
15846
|
+
* @property {string} message
|
|
15847
|
+
* @property {string} msg
|
|
15848
|
+
* @property {string} stack
|
|
15849
|
+
*/
|
|
15798
15850
|
}(base$1, base$1.exports));
|
|
15799
15851
|
|
|
15800
15852
|
var dot = {exports: {}};
|
|
@@ -17658,6 +17710,7 @@
|
|
|
17658
17710
|
var attrs = {
|
|
17659
17711
|
classname: test.parent.fullTitle(),
|
|
17660
17712
|
name: test.title,
|
|
17713
|
+
file: test.file,
|
|
17661
17714
|
time: test.duration / 1000 || 0
|
|
17662
17715
|
};
|
|
17663
17716
|
|
|
@@ -19066,7 +19119,7 @@
|
|
|
19066
19119
|
};
|
|
19067
19120
|
|
|
19068
19121
|
var name = "mocha";
|
|
19069
|
-
var version = "10.
|
|
19122
|
+
var version = "10.4.0";
|
|
19070
19123
|
var homepage = "https://mochajs.org/";
|
|
19071
19124
|
var notifyLogo = "https://ibin.co/4QuRuGjXvl36.png";
|
|
19072
19125
|
var require$$17 = {
|