@japa/runner 3.0.0-8 → 3.0.0-9

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 (74) hide show
  1. package/build/examples/dot.d.ts +1 -0
  2. package/build/examples/dot.js +11 -0
  3. package/build/examples/ndjson.d.ts +1 -0
  4. package/build/examples/ndjson.js +11 -0
  5. package/build/examples/spec.d.ts +1 -0
  6. package/build/examples/spec.js +11 -0
  7. package/build/factories/create_diverse_tests.d.ts +6 -0
  8. package/build/factories/create_diverse_tests.js +106 -0
  9. package/build/factories/main.d.ts +5 -42
  10. package/build/factories/main.js +24 -208
  11. package/build/factories/runner.d.ts +26 -0
  12. package/build/factories/runner.js +93 -0
  13. package/build/index.d.ts +9 -14
  14. package/build/index.js +202 -237
  15. package/build/modules/core/main.d.ts +63 -3
  16. package/build/modules/core/main.js +121 -21
  17. package/build/modules/core/reporters/base.d.ts +41 -0
  18. package/build/modules/core/reporters/base.js +183 -0
  19. package/build/modules/core/types.d.ts +5 -0
  20. package/build/modules/core/types.js +9 -0
  21. package/build/src/cli_parser.d.ts +14 -0
  22. package/build/src/cli_parser.js +75 -0
  23. package/build/src/config_manager.d.ts +18 -0
  24. package/build/src/config_manager.js +168 -0
  25. package/build/src/create_test.d.ts +21 -0
  26. package/build/src/create_test.js +53 -0
  27. package/build/src/debug.d.ts +3 -0
  28. package/build/src/debug.js +10 -0
  29. package/build/src/exceptions_manager.d.ts +19 -0
  30. package/build/src/exceptions_manager.js +85 -0
  31. package/build/src/files_manager.d.ts +18 -0
  32. package/build/src/files_manager.js +57 -0
  33. package/build/src/helpers.d.ts +15 -0
  34. package/build/src/helpers.js +34 -0
  35. package/build/src/hooks.d.ts +20 -0
  36. package/build/src/hooks.js +46 -0
  37. package/build/src/planner.d.ts +25 -0
  38. package/build/src/planner.js +98 -0
  39. package/build/src/plugins/retry.d.ts +20 -0
  40. package/build/src/plugins/retry.js +66 -0
  41. package/build/src/reporters/dot.d.ts +15 -0
  42. package/build/src/reporters/dot.js +41 -0
  43. package/build/src/reporters/main.d.ts +4 -9
  44. package/build/src/reporters/main.js +37 -11
  45. package/build/src/reporters/ndjson.d.ts +15 -0
  46. package/build/src/reporters/ndjson.js +86 -0
  47. package/build/src/reporters/spec.d.ts +13 -0
  48. package/build/src/reporters/spec.js +152 -0
  49. package/build/src/types.d.ts +19 -23
  50. package/build/src/types.js +9 -14
  51. package/build/src/validator.d.ts +30 -0
  52. package/build/src/validator.js +85 -0
  53. package/build/tests/base_reporter.spec.d.ts +1 -0
  54. package/build/tests/base_reporter.spec.js +111 -0
  55. package/build/tests/cli_parser.spec.d.ts +1 -0
  56. package/build/tests/cli_parser.spec.js +265 -0
  57. package/build/tests/config_manager.spec.d.ts +1 -0
  58. package/build/tests/config_manager.spec.js +741 -0
  59. package/build/tests/core.spec.d.ts +1 -0
  60. package/build/tests/core.spec.js +31 -0
  61. package/build/tests/files_manager.spec.d.ts +1 -0
  62. package/build/tests/files_manager.spec.js +153 -0
  63. package/build/tests/planner.spec.d.ts +1 -0
  64. package/build/tests/planner.spec.js +510 -0
  65. package/build/tests/runner.spec.d.ts +1 -0
  66. package/build/tests/runner.spec.js +442 -0
  67. package/build/tests_helpers/main.d.ts +7 -0
  68. package/build/tests_helpers/main.js +34 -0
  69. package/package.json +2 -17
  70. package/build/chunk-7THDHQFT.js +0 -283
  71. package/build/chunk-HN4AVHWN.js +0 -17
  72. package/build/chunk-MCOW34SG.js +0 -269
  73. package/build/chunk-W5IABAQU.js +0 -502
  74. package/build/main-63126780.d.ts +0 -109
@@ -0,0 +1,741 @@
1
+ /*
2
+ * @japa/runner
3
+ *
4
+ * (c) Japa
5
+ *
6
+ * For the full copyright and license information, please view the LICENSE
7
+ * file that was distributed with this source code.
8
+ */
9
+ import { test } from 'node:test';
10
+ import chaiSubset from 'chai-subset';
11
+ import { Refiner } from '@japa/core';
12
+ import { assert, default as chai } from 'chai';
13
+ import { CliParser } from '../src/cli_parser.js';
14
+ import { wrapAssertions } from '../tests_helpers/main.js';
15
+ import { ndjson, spec, dot } from '../src/reporters/main.js';
16
+ import { ConfigManager, NOOP } from '../src/config_manager.js';
17
+ chai.use(chaiSubset);
18
+ const USER_DEFINED_CONFIG_DATASET = [
19
+ [
20
+ {
21
+ files: [],
22
+ },
23
+ {
24
+ cwd: process.cwd(),
25
+ files: [],
26
+ filters: {},
27
+ forceExit: false,
28
+ refiner: new Refiner(),
29
+ reporters: {
30
+ activated: ['spec'],
31
+ list: [spec(), ndjson(), dot()],
32
+ },
33
+ setup: [],
34
+ teardown: [],
35
+ plugins: [],
36
+ retries: 0,
37
+ timeout: 2000,
38
+ },
39
+ ],
40
+ [
41
+ {
42
+ files: ['tests/unit/**.spec.ts'],
43
+ },
44
+ {
45
+ cwd: process.cwd(),
46
+ files: ['tests/unit/**.spec.ts'],
47
+ filters: {},
48
+ forceExit: false,
49
+ refiner: new Refiner(),
50
+ reporters: {
51
+ activated: ['spec'],
52
+ list: [spec(), ndjson(), dot()],
53
+ },
54
+ plugins: [],
55
+ setup: [],
56
+ teardown: [],
57
+ retries: 0,
58
+ timeout: 2000,
59
+ },
60
+ ],
61
+ [
62
+ {
63
+ files: ['tests/unit/**.spec.ts'],
64
+ timeout: 4000,
65
+ },
66
+ {
67
+ cwd: process.cwd(),
68
+ files: ['tests/unit/**.spec.ts'],
69
+ filters: {},
70
+ forceExit: false,
71
+ refiner: new Refiner(),
72
+ reporters: {
73
+ activated: ['spec'],
74
+ list: [spec(), ndjson(), dot()],
75
+ },
76
+ plugins: [],
77
+ setup: [],
78
+ teardown: [],
79
+ retries: 0,
80
+ timeout: 4000,
81
+ },
82
+ ],
83
+ [
84
+ {
85
+ files: ['tests/unit/**.spec.ts'],
86
+ timeout: 4000,
87
+ retries: 2,
88
+ },
89
+ {
90
+ cwd: process.cwd(),
91
+ files: ['tests/unit/**.spec.ts'],
92
+ filters: {},
93
+ forceExit: false,
94
+ refiner: new Refiner(),
95
+ reporters: {
96
+ activated: ['spec'],
97
+ list: [spec(), ndjson(), dot()],
98
+ },
99
+ plugins: [],
100
+ setup: [],
101
+ teardown: [],
102
+ retries: 2,
103
+ timeout: 4000,
104
+ },
105
+ ],
106
+ [
107
+ {
108
+ files: ['tests/unit/**.spec.ts'],
109
+ timeout: 4000,
110
+ retries: 2,
111
+ },
112
+ {
113
+ cwd: process.cwd(),
114
+ files: ['tests/unit/**.spec.ts'],
115
+ filters: {},
116
+ forceExit: false,
117
+ refiner: new Refiner(),
118
+ reporters: {
119
+ activated: ['spec'],
120
+ list: [spec(), ndjson(), dot()],
121
+ },
122
+ plugins: [],
123
+ setup: [],
124
+ teardown: [],
125
+ retries: 2,
126
+ timeout: 4000,
127
+ },
128
+ ],
129
+ [
130
+ {
131
+ files: ['tests/unit/**.spec.ts'],
132
+ timeout: 4000,
133
+ retries: 2,
134
+ filters: {
135
+ tags: ['@integration', '~@slow'],
136
+ tests: ['users list'],
137
+ },
138
+ },
139
+ {
140
+ cwd: process.cwd(),
141
+ files: ['tests/unit/**.spec.ts'],
142
+ filters: {
143
+ tags: ['@integration', '~@slow'],
144
+ tests: ['users list'],
145
+ },
146
+ forceExit: false,
147
+ refiner: new Refiner(),
148
+ reporters: {
149
+ activated: ['spec'],
150
+ list: [spec(), ndjson(), dot()],
151
+ },
152
+ plugins: [],
153
+ setup: [],
154
+ teardown: [],
155
+ retries: 2,
156
+ timeout: 4000,
157
+ },
158
+ ],
159
+ [
160
+ {
161
+ files: ['tests/unit/**.spec.ts'],
162
+ timeout: 4000,
163
+ retries: 2,
164
+ filters: {
165
+ tags: ['@integration', '~@slow'],
166
+ tests: ['users list'],
167
+ },
168
+ forceExit: true,
169
+ },
170
+ {
171
+ cwd: process.cwd(),
172
+ files: ['tests/unit/**.spec.ts'],
173
+ filters: {
174
+ tags: ['@integration', '~@slow'],
175
+ tests: ['users list'],
176
+ },
177
+ forceExit: true,
178
+ refiner: new Refiner(),
179
+ reporters: {
180
+ activated: ['spec'],
181
+ list: [spec(), ndjson(), dot()],
182
+ },
183
+ plugins: [],
184
+ setup: [],
185
+ teardown: [],
186
+ retries: 2,
187
+ timeout: 4000,
188
+ },
189
+ ],
190
+ [
191
+ {
192
+ files: [],
193
+ reporters: {
194
+ activated: ['dot'],
195
+ list: [],
196
+ },
197
+ },
198
+ {
199
+ cwd: process.cwd(),
200
+ files: [],
201
+ filters: {},
202
+ forceExit: false,
203
+ refiner: new Refiner(),
204
+ reporters: {
205
+ activated: ['dot'],
206
+ list: [],
207
+ },
208
+ plugins: [],
209
+ setup: [],
210
+ teardown: [],
211
+ retries: 0,
212
+ timeout: 2000,
213
+ },
214
+ ],
215
+ [
216
+ {
217
+ files: [],
218
+ reporters: {
219
+ activated: ['dot'],
220
+ },
221
+ },
222
+ {
223
+ cwd: process.cwd(),
224
+ files: [],
225
+ filters: {},
226
+ forceExit: false,
227
+ refiner: new Refiner(),
228
+ reporters: {
229
+ activated: ['dot'],
230
+ list: [spec(), ndjson(), dot()],
231
+ },
232
+ plugins: [],
233
+ setup: [],
234
+ teardown: [],
235
+ retries: 0,
236
+ timeout: 2000,
237
+ },
238
+ ],
239
+ ];
240
+ const USER_DEFINED_CONFIG_DATASET_WITH_CLI_ARGS = [
241
+ [
242
+ {
243
+ files: [],
244
+ },
245
+ new CliParser().parse([]),
246
+ {
247
+ cwd: process.cwd(),
248
+ files: [],
249
+ filters: {},
250
+ forceExit: false,
251
+ refiner: new Refiner(),
252
+ reporters: {
253
+ activated: ['spec'],
254
+ list: [spec(), ndjson(), dot()],
255
+ },
256
+ plugins: [],
257
+ setup: [],
258
+ teardown: [],
259
+ retries: 0,
260
+ timeout: 2000,
261
+ },
262
+ ],
263
+ [
264
+ {
265
+ files: ['tests/unit/**.spec.ts'],
266
+ },
267
+ new CliParser().parse(['--tags=@slow']),
268
+ {
269
+ cwd: process.cwd(),
270
+ files: ['tests/unit/**.spec.ts'],
271
+ filters: {
272
+ tags: ['@slow'],
273
+ },
274
+ forceExit: false,
275
+ refiner: new Refiner(),
276
+ reporters: {
277
+ activated: ['spec'],
278
+ list: [spec(), ndjson(), dot()],
279
+ },
280
+ plugins: [],
281
+ setup: [],
282
+ teardown: [],
283
+ retries: 0,
284
+ timeout: 2000,
285
+ },
286
+ ],
287
+ [
288
+ {
289
+ files: ['tests/unit/**.spec.ts'],
290
+ timeout: 4000,
291
+ },
292
+ new CliParser().parse(['--timeout=1000']),
293
+ {
294
+ cwd: process.cwd(),
295
+ files: ['tests/unit/**.spec.ts'],
296
+ filters: {},
297
+ forceExit: false,
298
+ refiner: new Refiner(),
299
+ reporters: {
300
+ activated: ['spec'],
301
+ list: [spec(), ndjson(), dot()],
302
+ },
303
+ plugins: [],
304
+ setup: [],
305
+ teardown: [],
306
+ retries: 0,
307
+ timeout: 1000,
308
+ },
309
+ ],
310
+ [
311
+ {
312
+ suites: [
313
+ {
314
+ name: 'unit',
315
+ files: 'tests/unit/**.spec.ts',
316
+ timeout: 3000,
317
+ },
318
+ ],
319
+ timeout: 4000,
320
+ },
321
+ new CliParser().parse(['--timeout=1000']),
322
+ {
323
+ cwd: process.cwd(),
324
+ suites: [
325
+ {
326
+ name: 'unit',
327
+ files: 'tests/unit/**.spec.ts',
328
+ timeout: 1000,
329
+ retries: 0,
330
+ configure: NOOP,
331
+ },
332
+ ],
333
+ filters: {},
334
+ forceExit: false,
335
+ refiner: new Refiner(),
336
+ reporters: {
337
+ activated: ['spec'],
338
+ list: [spec(), ndjson(), dot()],
339
+ },
340
+ plugins: [],
341
+ setup: [],
342
+ teardown: [],
343
+ retries: 0,
344
+ timeout: 1000,
345
+ },
346
+ ],
347
+ [
348
+ {
349
+ files: ['tests/unit/**.spec.ts'],
350
+ timeout: 4000,
351
+ retries: 2,
352
+ },
353
+ new CliParser().parse(['--retries=4']),
354
+ {
355
+ cwd: process.cwd(),
356
+ files: ['tests/unit/**.spec.ts'],
357
+ filters: {},
358
+ forceExit: false,
359
+ refiner: new Refiner(),
360
+ reporters: {
361
+ activated: ['spec'],
362
+ list: [spec(), ndjson(), dot()],
363
+ },
364
+ plugins: [],
365
+ setup: [],
366
+ teardown: [],
367
+ retries: 4,
368
+ timeout: 4000,
369
+ },
370
+ ],
371
+ [
372
+ {
373
+ suites: [
374
+ {
375
+ name: 'unit',
376
+ files: 'tests/unit/**.spec.ts',
377
+ retries: 2,
378
+ },
379
+ ],
380
+ retries: 0,
381
+ },
382
+ new CliParser().parse(['--retries=4']),
383
+ {
384
+ cwd: process.cwd(),
385
+ suites: [
386
+ {
387
+ name: 'unit',
388
+ files: 'tests/unit/**.spec.ts',
389
+ timeout: 2000,
390
+ retries: 4,
391
+ configure: NOOP,
392
+ },
393
+ ],
394
+ filters: {},
395
+ forceExit: false,
396
+ refiner: new Refiner(),
397
+ reporters: {
398
+ activated: ['spec'],
399
+ list: [spec(), ndjson(), dot()],
400
+ },
401
+ plugins: [],
402
+ setup: [],
403
+ teardown: [],
404
+ retries: 4,
405
+ timeout: 2000,
406
+ },
407
+ ],
408
+ [
409
+ {
410
+ files: ['tests/unit/**.spec.ts'],
411
+ timeout: 4000,
412
+ retries: 2,
413
+ },
414
+ new CliParser().parse(['--timeout=1000', '--retries=4']),
415
+ {
416
+ cwd: process.cwd(),
417
+ files: ['tests/unit/**.spec.ts'],
418
+ filters: {},
419
+ forceExit: false,
420
+ refiner: new Refiner(),
421
+ reporters: {
422
+ activated: ['spec'],
423
+ list: [spec(), ndjson(), dot()],
424
+ },
425
+ plugins: [],
426
+ setup: [],
427
+ teardown: [],
428
+ retries: 4,
429
+ timeout: 1000,
430
+ },
431
+ ],
432
+ [
433
+ {
434
+ files: ['tests/unit/**.spec.ts'],
435
+ timeout: 4000,
436
+ retries: 2,
437
+ filters: {
438
+ tags: ['@integration', '~@slow'],
439
+ tests: ['users list'],
440
+ },
441
+ },
442
+ new CliParser().parse(['--tags=@slow']),
443
+ {
444
+ cwd: process.cwd(),
445
+ files: ['tests/unit/**.spec.ts'],
446
+ filters: {
447
+ tags: ['@slow'],
448
+ tests: ['users list'],
449
+ },
450
+ forceExit: false,
451
+ refiner: new Refiner(),
452
+ reporters: {
453
+ activated: ['spec'],
454
+ list: [spec(), ndjson(), dot()],
455
+ },
456
+ plugins: [],
457
+ setup: [],
458
+ teardown: [],
459
+ retries: 2,
460
+ timeout: 4000,
461
+ },
462
+ ],
463
+ [
464
+ {
465
+ files: ['tests/unit/**.spec.ts'],
466
+ timeout: 4000,
467
+ retries: 2,
468
+ filters: {
469
+ tags: ['@integration', '~@slow'],
470
+ tests: ['users list'],
471
+ },
472
+ forceExit: true,
473
+ },
474
+ new CliParser().parse(['--tests=users']),
475
+ {
476
+ cwd: process.cwd(),
477
+ files: ['tests/unit/**.spec.ts'],
478
+ filters: {
479
+ tags: ['@integration', '~@slow'],
480
+ tests: ['users'],
481
+ },
482
+ forceExit: true,
483
+ refiner: new Refiner(),
484
+ reporters: {
485
+ activated: ['spec'],
486
+ list: [spec(), ndjson(), dot()],
487
+ },
488
+ plugins: [],
489
+ setup: [],
490
+ teardown: [],
491
+ retries: 2,
492
+ timeout: 4000,
493
+ },
494
+ ],
495
+ [
496
+ {
497
+ files: ['tests/unit/**.spec.ts'],
498
+ timeout: 4000,
499
+ retries: 2,
500
+ filters: {
501
+ tags: ['@integration', '~@slow'],
502
+ groups: ['user'],
503
+ },
504
+ forceExit: true,
505
+ },
506
+ new CliParser().parse(['--groups=customers']),
507
+ {
508
+ cwd: process.cwd(),
509
+ files: ['tests/unit/**.spec.ts'],
510
+ filters: {
511
+ tags: ['@integration', '~@slow'],
512
+ groups: ['customers'],
513
+ },
514
+ forceExit: true,
515
+ refiner: new Refiner(),
516
+ reporters: {
517
+ activated: ['spec'],
518
+ list: [spec(), ndjson(), dot()],
519
+ },
520
+ plugins: [],
521
+ setup: [],
522
+ teardown: [],
523
+ retries: 2,
524
+ timeout: 4000,
525
+ },
526
+ ],
527
+ [
528
+ {
529
+ files: ['tests/unit/**.spec.ts'],
530
+ timeout: 4000,
531
+ retries: 2,
532
+ filters: {
533
+ tags: ['@integration', '~@slow'],
534
+ files: ['unit/users/*'],
535
+ },
536
+ forceExit: true,
537
+ },
538
+ new CliParser().parse(['--files=*']),
539
+ {
540
+ cwd: process.cwd(),
541
+ files: ['tests/unit/**.spec.ts'],
542
+ filters: {
543
+ tags: ['@integration', '~@slow'],
544
+ files: ['*'],
545
+ },
546
+ forceExit: true,
547
+ refiner: new Refiner(),
548
+ reporters: {
549
+ activated: ['spec'],
550
+ list: [spec(), ndjson(), dot()],
551
+ },
552
+ plugins: [],
553
+ setup: [],
554
+ teardown: [],
555
+ retries: 2,
556
+ timeout: 4000,
557
+ },
558
+ ],
559
+ [
560
+ {
561
+ files: ['tests/unit/**.spec.ts'],
562
+ timeout: 4000,
563
+ retries: 2,
564
+ filters: {
565
+ tags: ['@integration', '~@slow'],
566
+ tests: ['users list'],
567
+ suites: ['unit'],
568
+ },
569
+ forceExit: true,
570
+ },
571
+ new CliParser().parse(['unit', 'functional']),
572
+ {
573
+ cwd: process.cwd(),
574
+ files: ['tests/unit/**.spec.ts'],
575
+ filters: {
576
+ tags: ['@integration', '~@slow'],
577
+ tests: ['users list'],
578
+ suites: ['unit', 'functional'],
579
+ },
580
+ forceExit: true,
581
+ refiner: new Refiner(),
582
+ reporters: {
583
+ activated: ['spec'],
584
+ list: [spec(), ndjson(), dot()],
585
+ },
586
+ plugins: [],
587
+ setup: [],
588
+ teardown: [],
589
+ retries: 2,
590
+ timeout: 4000,
591
+ },
592
+ ],
593
+ [
594
+ {
595
+ files: [],
596
+ reporters: {
597
+ activated: ['dot'],
598
+ list: [spec()],
599
+ },
600
+ },
601
+ new CliParser().parse(['--reporter', 'progress']),
602
+ {
603
+ cwd: process.cwd(),
604
+ files: [],
605
+ filters: {},
606
+ forceExit: false,
607
+ refiner: new Refiner(),
608
+ reporters: {
609
+ activated: ['progress'],
610
+ list: [spec()],
611
+ },
612
+ plugins: [],
613
+ setup: [],
614
+ teardown: [],
615
+ retries: 0,
616
+ timeout: 2000,
617
+ },
618
+ ],
619
+ [
620
+ {
621
+ files: [],
622
+ reporters: {
623
+ activated: ['spec'],
624
+ list: [spec()],
625
+ },
626
+ },
627
+ new CliParser().parse(['--force-exit']),
628
+ {
629
+ cwd: process.cwd(),
630
+ files: [],
631
+ filters: {},
632
+ forceExit: true,
633
+ refiner: new Refiner(),
634
+ reporters: {
635
+ activated: ['spec'],
636
+ list: [spec()],
637
+ },
638
+ plugins: [],
639
+ setup: [],
640
+ teardown: [],
641
+ retries: 0,
642
+ timeout: 2000,
643
+ },
644
+ ],
645
+ [
646
+ {
647
+ files: [],
648
+ reporters: {
649
+ activated: ['spec'],
650
+ list: [spec()],
651
+ },
652
+ },
653
+ new CliParser().parse(['--force-exit=true']),
654
+ {
655
+ cwd: process.cwd(),
656
+ files: [],
657
+ filters: {},
658
+ forceExit: true,
659
+ refiner: new Refiner(),
660
+ reporters: {
661
+ activated: ['spec'],
662
+ list: [spec()],
663
+ },
664
+ plugins: [],
665
+ setup: [],
666
+ teardown: [],
667
+ retries: 0,
668
+ timeout: 2000,
669
+ },
670
+ ],
671
+ [
672
+ {
673
+ files: [],
674
+ reporters: {
675
+ activated: ['spec'],
676
+ list: [spec()],
677
+ },
678
+ },
679
+ new CliParser().parse(['--force-exit=false']),
680
+ {
681
+ cwd: process.cwd(),
682
+ files: [],
683
+ filters: {},
684
+ forceExit: false,
685
+ refiner: new Refiner(),
686
+ reporters: {
687
+ activated: ['spec'],
688
+ list: [spec()],
689
+ },
690
+ plugins: [],
691
+ setup: [],
692
+ teardown: [],
693
+ retries: 0,
694
+ timeout: 2000,
695
+ },
696
+ ],
697
+ ];
698
+ test.describe('Config manager', () => {
699
+ test('hydrate config from user defined config', async () => {
700
+ let index = -1;
701
+ for (let [userConfig, output] of USER_DEFINED_CONFIG_DATASET) {
702
+ index++;
703
+ const manager = new ConfigManager(userConfig, {});
704
+ const config = manager.hydrate();
705
+ await wrapAssertions(() => {
706
+ const actualReporters = output.reporters;
707
+ const expectedReporters = config.reporters;
708
+ const actualReportersList = actualReporters?.list?.map((r) => r.name);
709
+ const expectedReportersList = expectedReporters?.list?.map((r) => r.name);
710
+ delete config.importer;
711
+ delete config.configureSuite;
712
+ delete config.reporters;
713
+ delete output.reporters;
714
+ assert.deepEqual(config, output);
715
+ assert.deepEqual(actualReporters?.activated, expectedReporters?.activated);
716
+ assert.deepEqual(actualReportersList, expectedReportersList);
717
+ });
718
+ }
719
+ });
720
+ test('hydrate config from user defined config and CLI args', async () => {
721
+ let index = -1;
722
+ for (let [userConfig, cliArgs, output] of USER_DEFINED_CONFIG_DATASET_WITH_CLI_ARGS) {
723
+ index++;
724
+ const manager = new ConfigManager(userConfig, cliArgs);
725
+ const config = manager.hydrate();
726
+ await wrapAssertions(() => {
727
+ const actualReporters = output.reporters;
728
+ const expectedReporters = config.reporters;
729
+ const actualReportersList = actualReporters?.list?.map((r) => r.name);
730
+ const expectedReportersList = expectedReporters?.list?.map((r) => r.name);
731
+ delete config.importer;
732
+ delete config.configureSuite;
733
+ delete config.reporters;
734
+ delete output.reporters;
735
+ assert.deepEqual(config, output);
736
+ assert.deepEqual(actualReporters?.activated, expectedReporters?.activated);
737
+ assert.deepEqual(actualReportersList, expectedReportersList);
738
+ });
739
+ }
740
+ });
741
+ });