mocha-compat 3.6.4 → 10.8.2

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.
Files changed (92) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +61 -110
  3. package/bin/_mocha +10 -0
  4. package/bin/mocha.js +142 -0
  5. package/browser-entry.js +61 -22
  6. package/lib/browser/highlight-tags.js +39 -0
  7. package/lib/browser/parse-query.js +24 -0
  8. package/lib/{template.html → browser/template.html} +7 -5
  9. package/lib/cli/cli.js +89 -0
  10. package/lib/cli/collect-files.js +137 -0
  11. package/lib/cli/commands.js +14 -0
  12. package/lib/cli/config.js +100 -0
  13. package/lib/cli/index.js +3 -0
  14. package/lib/cli/init.js +36 -0
  15. package/lib/cli/lookup-files.js +150 -0
  16. package/lib/cli/node-flags.js +85 -0
  17. package/lib/cli/one-and-dones.js +69 -0
  18. package/lib/cli/options.js +284 -0
  19. package/lib/cli/run-helpers.js +304 -0
  20. package/lib/cli/run-option-metadata.js +116 -0
  21. package/lib/cli/run.js +380 -0
  22. package/lib/cli/watch-run.js +377 -0
  23. package/lib/context.js +16 -42
  24. package/lib/errors.js +563 -0
  25. package/lib/hook.js +50 -9
  26. package/lib/interfaces/bdd.js +28 -29
  27. package/lib/interfaces/common.js +56 -21
  28. package/lib/interfaces/exports.js +4 -7
  29. package/lib/interfaces/qunit.js +10 -11
  30. package/lib/interfaces/tdd.js +15 -15
  31. package/lib/mocha.js +1073 -292
  32. package/lib/mocharc.json +10 -0
  33. package/lib/nodejs/buffered-worker-pool.js +188 -0
  34. package/lib/nodejs/esm-utils.js +106 -0
  35. package/lib/nodejs/file-unloader.js +15 -0
  36. package/lib/nodejs/parallel-buffered-runner.js +433 -0
  37. package/lib/nodejs/reporters/parallel-buffered.js +165 -0
  38. package/lib/nodejs/serializer.js +414 -0
  39. package/lib/nodejs/worker.js +151 -0
  40. package/lib/pending.js +3 -3
  41. package/lib/plugin-loader.js +286 -0
  42. package/lib/reporters/base.js +305 -205
  43. package/lib/reporters/doc.js +52 -21
  44. package/lib/reporters/dot.js +31 -18
  45. package/lib/reporters/html.js +153 -81
  46. package/lib/reporters/json-stream.js +53 -24
  47. package/lib/reporters/json.js +88 -18
  48. package/lib/reporters/landing.js +38 -16
  49. package/lib/reporters/list.js +34 -19
  50. package/lib/reporters/markdown.js +28 -15
  51. package/lib/reporters/min.js +22 -8
  52. package/lib/reporters/nyan.js +62 -58
  53. package/lib/reporters/progress.js +32 -19
  54. package/lib/reporters/spec.js +41 -23
  55. package/lib/reporters/tap.js +255 -32
  56. package/lib/reporters/xunit.js +89 -39
  57. package/lib/runnable.js +233 -148
  58. package/lib/runner.js +679 -380
  59. package/lib/stats-collector.js +83 -0
  60. package/lib/suite.js +376 -112
  61. package/lib/test.js +82 -21
  62. package/lib/utils.js +364 -477
  63. package/mocha.css +183 -54
  64. package/mocha.js +19840 -15846
  65. package/mocha.js.map +1 -0
  66. package/package.json +163 -336
  67. package/{lib/to-iso-string → vendor/serialize-javascript}/LICENSE +8 -6
  68. package/vendor/serialize-javascript/README.md +10 -0
  69. package/vendor/serialize-javascript/index.js +349 -0
  70. package/bin/_mocha-compat +0 -572
  71. package/bin/mocha-compat +0 -87
  72. package/bin/options.js +0 -41
  73. package/bower.json +0 -38
  74. package/images/error.png +0 -0
  75. package/images/ok.png +0 -0
  76. package/lib/browser/.eslintrc.yaml +0 -4
  77. package/lib/browser/debug.js +0 -7
  78. package/lib/browser/events.js +0 -195
  79. package/lib/browser/progress.js +0 -119
  80. package/lib/browser/tty.js +0 -13
  81. package/lib/ms.js +0 -130
  82. package/lib/to-iso-string/index.js +0 -37
  83. package/vendor/glob/LICENSE +0 -15
  84. package/vendor/glob/README.md +0 -399
  85. package/vendor/glob/common.js +0 -244
  86. package/vendor/glob/glob.js +0 -788
  87. package/vendor/glob/package.json +0 -55
  88. package/vendor/glob/sync.js +0 -486
  89. package/vendor/inflight/LICENSE +0 -15
  90. package/vendor/inflight/README.md +0 -37
  91. package/vendor/inflight/inflight.js +0 -54
  92. package/vendor/inflight/package.json +0 -29
package/mocha.css CHANGED
@@ -1,7 +1,79 @@
1
1
  @charset "utf-8";
2
2
 
3
+ :root {
4
+ --mocha-color: #000;
5
+ --mocha-bg-color: #fff;
6
+ --mocha-test-pass-color: #007f6a;
7
+ --mocha-test-pass-duration-color: #fff;
8
+ --mocha-test-pass-shadow-color: rgba(0,0,0, 0.2);
9
+ --mocha-test-pass-mediump-color: #c09853;
10
+ --mocha-test-pass-slow-color: #b94a48;
11
+ --mocha-test-pending-color: #0b97c4;
12
+ --mocha-test-pending-icon-color: #0b97c4;
13
+ --mocha-test-fail-color: #c00;
14
+ --mocha-test-fail-icon-color: #c00;
15
+ --mocha-test-fail-pre-color: #000;
16
+ --mocha-test-fail-pre-error-color: #c00;
17
+ --mocha-test-html-error-color: #000;
18
+ --mocha-box-shadow-color: #eee;
19
+ --mocha-box-bottom-color: #ddd;
20
+ --mocha-test-replay-color: #000;
21
+ --mocha-test-replay-bg-color: #eee;
22
+ --mocha-stats-color: #888;
23
+ --mocha-stats-em-color: #000;
24
+ --mocha-stats-hover-color: #eee;
25
+ --mocha-progress-ring-color: #eee;
26
+ --mocha-progress-ring-highlight-color: #9f9f9f;
27
+ --mocha-progress-text-color: #000;
28
+ --mocha-error-color: #c00;
29
+
30
+ --mocha-code-comment: #ddd;
31
+ --mocha-code-init: #2f6fad;
32
+ --mocha-code-string: #5890ad;
33
+ --mocha-code-keyword: #8a6343;
34
+ --mocha-code-number: #2f6fad;
35
+ }
36
+
37
+ @media (prefers-color-scheme: dark) {
38
+ :root {
39
+ --mocha-color: #fff;
40
+ --mocha-bg-color: #222;
41
+ --mocha-test-pass-color: #00d6b2;
42
+ --mocha-test-pass-duration-color: #222;
43
+ --mocha-test-pass-shadow-color: rgba(255, 255, 255, 0.2);
44
+ --mocha-test-pass-mediump-color: #f1be67;
45
+ --mocha-test-pass-slow-color: #f49896;
46
+ --mocha-test-pending-color: #0b97c4;
47
+ --mocha-test-pending-icon-color: #0b97c4;
48
+ --mocha-test-fail-color: #f44;
49
+ --mocha-test-fail-icon-color: #f44;
50
+ --mocha-test-fail-pre-color: #fff;
51
+ --mocha-test-fail-pre-error-color: #f44;
52
+ --mocha-test-html-error-color: #fff;
53
+ --mocha-box-shadow-color: #444;
54
+ --mocha-box-bottom-color: #555;
55
+ --mocha-test-replay-color: #fff;
56
+ --mocha-test-replay-bg-color: #444;
57
+ --mocha-stats-color: #aaa;
58
+ --mocha-stats-em-color: #fff;
59
+ --mocha-stats-hover-color: #444;
60
+ --mocha-progress-ring-color: #444;
61
+ --mocha-progress-ring-highlight-color: #888;
62
+ --mocha-progress-text-color: #fff;
63
+ --mocha-error-color: #f44;
64
+
65
+ --mocha-code-comment: #ddd;
66
+ --mocha-code-init: #9cc7f1;
67
+ --mocha-code-string: #80d4ff;
68
+ --mocha-code-keyword: #e3a470;
69
+ --mocha-code-number: #4ca7ff;
70
+ }
71
+ }
72
+
3
73
  body {
4
74
  margin:0;
75
+ background-color: var(--mocha-bg-color);
76
+ color: var(--mocha-color);
5
77
  }
6
78
 
7
79
  #mocha {
@@ -69,11 +141,11 @@ body {
69
141
  }
70
142
 
71
143
  #mocha .test.pass.medium .duration {
72
- background: #c09853;
144
+ background: var(--mocha-test-pass-mediump-color);
73
145
  }
74
146
 
75
147
  #mocha .test.pass.slow .duration {
76
- background: #b94a48;
148
+ background: var(--mocha-test-pass-slow-color);
77
149
  }
78
150
 
79
151
  #mocha .test.pass::before {
@@ -82,17 +154,17 @@ body {
82
154
  display: block;
83
155
  float: left;
84
156
  margin-right: 5px;
85
- color: #00d6b2;
157
+ color: var(--mocha-test-pass-color);
86
158
  }
87
159
 
88
160
  #mocha .test.pass .duration {
89
161
  font-size: 9px;
90
162
  margin-left: 5px;
91
163
  padding: 2px 5px;
92
- color: #fff;
93
- -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
94
- -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
95
- box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
164
+ color: var(--mocha-test-pass-duration-color);
165
+ -webkit-box-shadow: inset 0 1px 1px var(--mocha-test-pass-shadow-color);
166
+ -moz-box-shadow: inset 0 1px 1px var(--mocha-test-pass-shadow-color);
167
+ box-shadow: inset 0 1px 1px var(--mocha-test-pass-shadow-color);
96
168
  -webkit-border-radius: 5px;
97
169
  -moz-border-radius: 5px;
98
170
  -ms-border-radius: 5px;
@@ -105,20 +177,20 @@ body {
105
177
  }
106
178
 
107
179
  #mocha .test.pending {
108
- color: #0b97c4;
180
+ color: var(--mocha-test-pending-color);
109
181
  }
110
182
 
111
183
  #mocha .test.pending::before {
112
184
  content: '◦';
113
- color: #0b97c4;
185
+ color: var(--mocha-test-pending-icon-color);
114
186
  }
115
187
 
116
188
  #mocha .test.fail {
117
- color: #c00;
189
+ color: var(--mocha-test-fail-color);
118
190
  }
119
191
 
120
192
  #mocha .test.fail pre {
121
- color: black;
193
+ color: var(--mocha-test-fail-pre-color);
122
194
  }
123
195
 
124
196
  #mocha .test.fail::before {
@@ -127,36 +199,35 @@ body {
127
199
  display: block;
128
200
  float: left;
129
201
  margin-right: 5px;
130
- color: #c00;
202
+ color: var(--mocha-test-fail-icon-color);
131
203
  }
132
204
 
133
205
  #mocha .test pre.error {
134
- color: #c00;
206
+ color: var(--mocha-test-fail-pre-error-color);
135
207
  max-height: 300px;
136
208
  overflow: auto;
137
209
  }
138
210
 
139
211
  #mocha .test .html-error {
140
212
  overflow: auto;
141
- color: black;
142
- line-height: 1.5;
213
+ color: var(--mocha-test-html-error-color);
143
214
  display: block;
144
215
  float: left;
145
216
  clear: left;
146
217
  font: 12px/1.5 monaco, monospace;
147
218
  margin: 5px;
148
219
  padding: 15px;
149
- border: 1px solid #eee;
220
+ border: 1px solid var(--mocha-box-shadow-color);
150
221
  max-width: 85%; /*(1)*/
151
222
  max-width: -webkit-calc(100% - 42px);
152
223
  max-width: -moz-calc(100% - 42px);
153
224
  max-width: calc(100% - 42px); /*(2)*/
154
225
  max-height: 300px;
155
226
  word-wrap: break-word;
156
- border-bottom-color: #ddd;
157
- -webkit-box-shadow: 0 1px 3px #eee;
158
- -moz-box-shadow: 0 1px 3px #eee;
159
- box-shadow: 0 1px 3px #eee;
227
+ border-bottom-color: var(--mocha-box-bottom-color);
228
+ -webkit-box-shadow: 0 1px 3px var(--mocha-box-shadow-color);
229
+ -moz-box-shadow: 0 1px 3px var(--mocha-box-shadow-color);
230
+ box-shadow: 0 1px 3px var(--mocha-box-shadow-color);
160
231
  -webkit-border-radius: 3px;
161
232
  -moz-border-radius: 3px;
162
233
  border-radius: 3px;
@@ -188,16 +259,16 @@ body {
188
259
  font: 12px/1.5 monaco, monospace;
189
260
  margin: 5px;
190
261
  padding: 15px;
191
- border: 1px solid #eee;
262
+ border: 1px solid var(--mocha-box-shadow-color);
192
263
  max-width: 85%; /*(1)*/
193
264
  max-width: -webkit-calc(100% - 42px);
194
265
  max-width: -moz-calc(100% - 42px);
195
266
  max-width: calc(100% - 42px); /*(2)*/
196
267
  word-wrap: break-word;
197
- border-bottom-color: #ddd;
198
- -webkit-box-shadow: 0 1px 3px #eee;
199
- -moz-box-shadow: 0 1px 3px #eee;
200
- box-shadow: 0 1px 3px #eee;
268
+ border-bottom-color: var(--mocha-box-bottom-color);
269
+ -webkit-box-shadow: 0 1px 3px var(--mocha-box-shadow-color);
270
+ -moz-box-shadow: 0 1px 3px var(--mocha-box-shadow-color);
271
+ box-shadow: 0 1px 3px var(--mocha-box-shadow-color);
201
272
  -webkit-border-radius: 3px;
202
273
  -moz-border-radius: 3px;
203
274
  border-radius: 3px;
@@ -218,7 +289,7 @@ body {
218
289
  height: 15px;
219
290
  line-height: 15px;
220
291
  text-align: center;
221
- background: #eee;
292
+ background: var(--mocha-test-replay-bg-color);
222
293
  font-size: 15px;
223
294
  -webkit-border-radius: 15px;
224
295
  -moz-border-radius: 15px;
@@ -227,11 +298,12 @@ body {
227
298
  -moz-transition:opacity 200ms;
228
299
  -o-transition:opacity 200ms;
229
300
  transition: opacity 200ms;
230
- opacity: 0.3;
231
- color: #888;
301
+ opacity: 0.7;
302
+ color: var(--mocha-test-replay-color);
232
303
  }
233
304
 
234
305
  #mocha .test:hover a.replay {
306
+ box-shadow: 0 0 1px inset var(--mocha-test-replay-color);
235
307
  opacity: 1;
236
308
  }
237
309
 
@@ -252,40 +324,102 @@ body {
252
324
  }
253
325
 
254
326
  #mocha-error {
255
- color: #c00;
327
+ color: var(--mocha-error-color);
256
328
  font-size: 1.5em;
257
329
  font-weight: 100;
258
330
  letter-spacing: 1px;
259
331
  }
260
332
 
261
333
  #mocha-stats {
334
+ --ring-container-size: 40px;
335
+ --ring-size: 39px;
336
+ --ring-radius: calc(var(--ring-size) / 2);
337
+
262
338
  position: fixed;
263
339
  top: 15px;
264
340
  right: 10px;
265
341
  font-size: 12px;
266
342
  margin: 0;
267
- color: #888;
343
+ color: var(--mocha-stats-color);
268
344
  z-index: 1;
269
345
  }
270
346
 
271
- #mocha-stats .progress {
347
+ #mocha-stats.fail li.result {
348
+ color: var(--mocha-test-fail-color);
349
+ }
350
+
351
+ #mocha-stats.fail li.failures {
352
+ color: var(--mocha-test-fail-color);
353
+ }
354
+
355
+ #mocha-stats.fail li.failures em {
356
+ color: var(--mocha-test-fail-color);
357
+ }
358
+
359
+ #mocha-stats.pass li.result {
360
+ color: var(--mocha-test-pass-color);
361
+ }
362
+
363
+ #mocha-stats.pass li.passes {
364
+ color: var(--mocha-test-pass-color);
365
+ }
366
+
367
+ #mocha-stats.pass li.passes em {
368
+ color: var(--mocha-test-pass-color);
369
+ }
370
+
371
+ #mocha-stats .progress-contain {
272
372
  float: right;
273
- padding-top: 0;
373
+ padding: 0;
374
+ }
274
375
 
275
- /**
276
- * Set safe initial values, so mochas .progress does not inherit these
277
- * properties from Bootstrap .progress (which causes .progress height to
278
- * equal line height set in Bootstrap).
279
- */
280
- height: auto;
281
- -webkit-box-shadow: none;
282
- -moz-box-shadow: none;
283
- box-shadow: none;
284
- background-color: initial;
376
+ #mocha-stats .progress-element,
377
+ #mocha-stats .progress-text {
378
+ width: var(--ring-container-size);
379
+ display: block;
380
+ top: 12px;
381
+ position: absolute;
382
+ }
383
+
384
+ #mocha-stats .progress-element {
385
+ visibility: hidden;
386
+ height: calc(var(--ring-container-size) / 2);
387
+ }
388
+
389
+ #mocha-stats .progress-text {
390
+ text-align: center;
391
+ text-overflow: clip;
392
+ overflow: hidden;
393
+ color: var(--mocha-stats-em-color);
394
+ font-size: 11px;
395
+ }
396
+
397
+ #mocha-stats .progress-ring {
398
+ width: var(--ring-container-size);
399
+ height: var(--ring-container-size);
400
+ }
401
+
402
+ #mocha-stats .ring-flatlight,
403
+ #mocha-stats .ring-highlight {
404
+ --stroke-thickness: 1.65px;
405
+ --center: calc(var(--ring-container-size) / 2);
406
+ cx: var(--center);
407
+ cy: var(--center);
408
+ r: calc(var(--ring-radius) - calc(var(--stroke-thickness) / 2));
409
+ fill: hsla(0, 0%, 0%, 0);
410
+ stroke-width: var(--stroke-thickness);
411
+ }
412
+
413
+ #mocha-stats .ring-flatlight {
414
+ stroke: var(--mocha-progress-ring-color);
415
+ }
416
+
417
+ #mocha-stats .ring-highlight {
418
+ stroke: var(--mocha-progress-ring-highlight-color);
285
419
  }
286
420
 
287
421
  #mocha-stats em {
288
- color: black;
422
+ color: var(--mocha-stats-em-color);
289
423
  }
290
424
 
291
425
  #mocha-stats a {
@@ -294,7 +428,7 @@ body {
294
428
  }
295
429
 
296
430
  #mocha-stats a:hover {
297
- border-bottom: 1px solid #eee;
431
+ border-bottom: 1px solid var(--mocha-stats-hover-color);
298
432
  }
299
433
 
300
434
  #mocha-stats li {
@@ -304,16 +438,11 @@ body {
304
438
  padding-top: 11px;
305
439
  }
306
440
 
307
- #mocha-stats canvas {
308
- width: 40px;
309
- height: 40px;
310
- }
311
-
312
- #mocha code .comment { color: #ddd; }
313
- #mocha code .init { color: #2f6fad; }
314
- #mocha code .string { color: #5890ad; }
315
- #mocha code .keyword { color: #8a6343; }
316
- #mocha code .number { color: #2f6fad; }
441
+ #mocha code .comment { color: var(--mocha-code-comment); }
442
+ #mocha code .init { color: var(--mocha-code-init); }
443
+ #mocha code .string { color: var(--mocha-code-string); }
444
+ #mocha code .keyword { color: var(--mocha-code-keyword); }
445
+ #mocha code .number { color: var(--mocha-code-number); }
317
446
 
318
447
  @media screen and (max-device-width: 480px) {
319
448
  #mocha {