@spcsn/taro-cli 0.1.5 → 0.1.6

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 (34) hide show
  1. package/README.md +34 -0
  2. package/package.json +14 -14
  3. package/src/__tests__/__mocks__/presets.ts +0 -15
  4. package/src/__tests__/build-config.spec.ts +0 -66
  5. package/src/__tests__/cli.spec.ts +0 -226
  6. package/src/__tests__/config.spec.ts +0 -224
  7. package/src/__tests__/doctor-config.spec.ts +0 -918
  8. package/src/__tests__/doctor-recommand.spec.ts +0 -136
  9. package/src/__tests__/doctor.spec.ts +0 -94
  10. package/src/__tests__/dotenv-parse.spec.ts +0 -105
  11. package/src/__tests__/env/.env +0 -2
  12. package/src/__tests__/fixtures/default/.env +0 -3
  13. package/src/__tests__/fixtures/default/.env.development +0 -1
  14. package/src/__tests__/fixtures/default/.env.local +0 -1
  15. package/src/__tests__/fixtures/default/.env.pre +0 -3
  16. package/src/__tests__/fixtures/default/.env.production +0 -1
  17. package/src/__tests__/fixtures/default/.env.uat +0 -5
  18. package/src/__tests__/fixtures/default/.env.uat.local +0 -1
  19. package/src/__tests__/fixtures/default/babel.config.js +0 -10
  20. package/src/__tests__/fixtures/default/config/dev.js +0 -9
  21. package/src/__tests__/fixtures/default/config/index.js +0 -84
  22. package/src/__tests__/fixtures/default/config/prod.js +0 -18
  23. package/src/__tests__/fixtures/default/package.json +0 -27
  24. package/src/__tests__/fixtures/default/src/app.config.js +0 -11
  25. package/src/__tests__/fixtures/default/src/app.js +0 -16
  26. package/src/__tests__/fixtures/default/src/app.scss +0 -0
  27. package/src/__tests__/fixtures/default/src/index.html +0 -19
  28. package/src/__tests__/fixtures/default/src/pages/index/index.config.js +0 -3
  29. package/src/__tests__/fixtures/default/src/pages/index/index.jsx +0 -22
  30. package/src/__tests__/fixtures/default/src/pages/index/index.scss +0 -0
  31. package/src/__tests__/info.spec.ts +0 -72
  32. package/src/__tests__/inspect.spec.ts +0 -160
  33. package/src/__tests__/update.spec.ts +0 -310
  34. package/src/__tests__/utils/index.ts +0 -54
@@ -1,918 +0,0 @@
1
- import * as helper from '@spcsn/taro-helper';
2
-
3
- import doctor from '../doctor';
4
-
5
- const validator = doctor.validators[1];
6
- const baseConfig = {
7
- projectName: 'test',
8
- sourceRoot: 'src',
9
- outputRoot: 'dist',
10
- framework: 'react',
11
- };
12
-
13
- function getConfig(config) {
14
- return {
15
- projectConfig: {
16
- ...baseConfig,
17
- ...config,
18
- },
19
- helper,
20
- configPath: '',
21
- };
22
- }
23
-
24
- describe('config validator of doctor', () => {
25
- it("should config include's all the required values", async () => {
26
- let { messages } = await validator({
27
- projectConfig: {},
28
- helper,
29
- configPath: '',
30
- });
31
- expect(messages.length).toEqual(6);
32
- let msgs = messages.map((line) => line.content);
33
- expect(msgs.includes('缺少 "projectName" 配置项')).toBeTruthy();
34
- expect(msgs.includes('缺少 "sourceRoot" 配置项')).toBeTruthy();
35
- expect(msgs.includes('缺少 "outputRoot" 配置项')).toBeTruthy();
36
- expect(msgs.includes('缺少 "framework" 配置项')).toBeTruthy();
37
-
38
- const res = await validator({
39
- projectConfig: {
40
- projectName: '',
41
- sourceRoot: '',
42
- outputRoot: '',
43
- framework: '',
44
- },
45
- helper,
46
- configPath: '',
47
- });
48
- messages = res.messages;
49
-
50
- expect(messages.length).toEqual(3);
51
- msgs = messages.map((line) => line.content);
52
- expect(msgs.includes('framework 的值 "" 与任何指定选项 ["react"] 都不匹配')).toBeTruthy();
53
- });
54
-
55
- it('date', async () => {
56
- let { messages } = await validator(
57
- getConfig({
58
- date: '2020-5-26',
59
- }),
60
- );
61
-
62
- expect(messages.length).toEqual(3);
63
-
64
- const res = await validator(
65
- getConfig({
66
- date: 'abc',
67
- }),
68
- );
69
- messages = res.messages;
70
-
71
- expect(messages.length).toEqual(3);
72
- expect(messages[2].content).toEqual(
73
- 'date 的值 "abc" 与 "\\d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[12][0-9]|3[01])" 不匹配',
74
- );
75
- });
76
-
77
- it('framework', async () => {
78
- let res = await validator(
79
- getConfig({
80
- framework: 'react',
81
- }),
82
- );
83
- expect(res.messages.length).toEqual(3);
84
-
85
- res = await validator(
86
- getConfig({
87
- framework: 'other',
88
- }),
89
- );
90
- expect(res.messages.length).toEqual(3);
91
- expect(res.messages[2].content).toEqual('framework 的值 "other" 与任何指定选项 ["react"] 都不匹配');
92
- });
93
-
94
- it('designWidth', async () => {
95
- let res = await validator(
96
- getConfig({
97
- designWidth: '750',
98
- }),
99
- );
100
- expect(res.messages.length).toEqual(3);
101
-
102
- res = await validator(
103
- getConfig({
104
- designWidth: 'a',
105
- }),
106
- );
107
- expect(res.messages.length).toEqual(3);
108
-
109
- res = await validator(
110
- getConfig({
111
- designWidth: 700.5,
112
- }),
113
- );
114
- expect(res.messages.length).toEqual(3);
115
-
116
- res = await validator(
117
- getConfig({
118
- designWidth: -640,
119
- }),
120
- );
121
- expect(res.messages.length).toEqual(3);
122
- });
123
-
124
- it('deviceRatio', async () => {
125
- let res = await validator(
126
- getConfig({
127
- deviceRatio: {
128
- 640: 2.34 / 2,
129
- 750: 1,
130
- 828: 1.81 / 2,
131
- },
132
- }),
133
- );
134
- expect(res.messages.length).toEqual(3);
135
-
136
- res = await validator(
137
- getConfig({
138
- deviceRatio: {
139
- 640: 2.34 / 2,
140
- 750: 'a',
141
- 828: 1.81 / 2,
142
- },
143
- }),
144
- );
145
- expect(res.messages.length).toEqual(3);
146
- });
147
-
148
- it('plugins', async () => {
149
- let res = await validator(
150
- getConfig({
151
- plugins: [
152
- '@spcsn/taro-plugin-mock',
153
- [
154
- '@spcsn/taro-plugin-mock',
155
- {
156
- mocks: {
157
- '/api/user/1': {
158
- name: 'judy',
159
- desc: 'Mental guy',
160
- },
161
- },
162
- },
163
- ],
164
- ['@spcsn/taro-plugin-mock'],
165
- '/absulute/path/plugin/filename',
166
- ],
167
- }),
168
- );
169
- expect(res.messages.length).toEqual(3);
170
-
171
- res = await validator(
172
- getConfig({
173
- plugins: [1, {}, ['x', 1], [{}, 'x'], ['x', {}, 1], ['']],
174
- }),
175
- );
176
- expect(res.messages.length).toEqual(6);
177
- });
178
-
179
- it('presets', async () => {
180
- let res = await validator(
181
- getConfig({
182
- presets: [
183
- '@spcsn/taro-plugin-mock',
184
- [
185
- '@spcsn/taro-plugin-mock',
186
- {
187
- mocks: {
188
- '/api/user/1': {
189
- name: 'judy',
190
- desc: 'Mental guy',
191
- },
192
- },
193
- },
194
- ],
195
- ['@spcsn/taro-plugin-mock'],
196
- '/absulute/path/plugin/filename',
197
- ],
198
- }),
199
- );
200
- expect(res.messages.length).toEqual(3);
201
-
202
- res = await validator(
203
- getConfig({
204
- presets: [1, {}, ['x', 1], [{}, 'x'], ['x', {}, 1], ['']],
205
- }),
206
- );
207
- expect(res.messages.length).toEqual(6);
208
- });
209
-
210
- it('terser', async () => {
211
- let res = await validator(
212
- getConfig({
213
- terser: {
214
- enable: true,
215
- config: {},
216
- },
217
- }),
218
- );
219
- expect(res.messages.length).toEqual(3);
220
-
221
- res = await validator(
222
- getConfig({
223
- terser: {
224
- enables: true,
225
- enable: 1,
226
- config: [],
227
- },
228
- }),
229
- );
230
- expect(res.messages.length).toEqual(5);
231
- });
232
-
233
- it('csso', async () => {
234
- let res = await validator(
235
- getConfig({
236
- csso: {
237
- enable: true,
238
- config: {},
239
- },
240
- }),
241
- );
242
- expect(res.messages.length).toEqual(3);
243
-
244
- res = await validator(
245
- getConfig({
246
- csso: {
247
- enables: true,
248
- enable: 1,
249
- config: [],
250
- },
251
- }),
252
- );
253
- expect(res.messages.length).toEqual(5);
254
- });
255
-
256
- it('uglify', async () => {
257
- let res = await validator(
258
- getConfig({
259
- uglify: {
260
- enable: true,
261
- config: {},
262
- },
263
- }),
264
- );
265
- expect(res.messages.length).toEqual(3);
266
-
267
- res = await validator(
268
- getConfig({
269
- uglify: {
270
- enables: true,
271
- enable: 1,
272
- config: [],
273
- },
274
- }),
275
- );
276
- expect(res.messages.length).toEqual(3);
277
- });
278
-
279
- it('sass', async () => {
280
- let res = await validator(
281
- getConfig({
282
- sass: {
283
- resource: '/src/styles/variable.scss',
284
- },
285
- }),
286
- );
287
- expect(res.messages.length).toEqual(3);
288
-
289
- res = await validator(
290
- getConfig({
291
- sass: {
292
- resource: ['./src/styles/variable.scss', './src/styles/mixins.scss'],
293
- projectDirectory: '/root',
294
- data: '$nav-height: 48px;',
295
- },
296
- }),
297
- );
298
- expect(res.messages.length).toEqual(3);
299
-
300
- res = await validator(
301
- getConfig({
302
- sass: {
303
- resource: {},
304
- projectDirectory: 1,
305
- data: 1,
306
- },
307
- }),
308
- );
309
- expect(res.messages.length).toEqual(5);
310
- });
311
-
312
- it('env', async () => {
313
- const res = await validator(
314
- getConfig({
315
- env: {
316
- NODE_ENV: '"development"',
317
- },
318
- }),
319
- );
320
- expect(res.messages.length).toEqual(3);
321
- });
322
-
323
- it('defineConstants', async () => {
324
- const res = await validator(
325
- getConfig({
326
- defineConstants: {
327
- A: '"a"',
328
- },
329
- }),
330
- );
331
- expect(res.messages.length).toEqual(3);
332
- });
333
-
334
- it('alias', async () => {
335
- let res = await validator(
336
- getConfig({
337
- alias: {
338
- '@/components': 'src/components',
339
- },
340
- }),
341
- );
342
- expect(res.messages.length).toEqual(3);
343
-
344
- res = await validator(
345
- getConfig({
346
- alias: {
347
- '@/components': ['src/components'],
348
- '@/utils': 1,
349
- '@/project': {},
350
- },
351
- }),
352
- );
353
- expect(res.messages.length).toEqual(3);
354
- });
355
-
356
- it('copy', async () => {
357
- let res = await validator(
358
- getConfig({
359
- copy: {
360
- patterns: [
361
- { from: 'src/asset/tt/', to: 'dist/asset/tt/', ignore: ['*.js'] },
362
- { from: 'src/asset/tt/sd.jpg', to: 'dist/asset/tt/sd.jpg' },
363
- ],
364
- },
365
- }),
366
- );
367
- expect(res.messages.length).toEqual(3);
368
-
369
- res = await validator(
370
- getConfig({
371
- copy: {
372
- options: {
373
- ignore: ['*.js', '*.css'],
374
- },
375
- },
376
- }),
377
- );
378
- expect(res.messages.length).toEqual(3);
379
-
380
- res = await validator(
381
- getConfig({
382
- copy: {
383
- patterns: [{ ignore: ['*.js'] }, { from: 'src/asset/tt/sd.jpg' }, { to: 'dist/asset/tt/sd.jpg' }],
384
- options: {
385
- ignore: [1, true, {}],
386
- },
387
- },
388
- }),
389
- );
390
- expect(res.messages.length).toEqual(9);
391
- });
392
-
393
- it('mini.compile', async () => {
394
- let res = await validator(
395
- getConfig({
396
- mini: {
397
- compile: {
398
- exclude: ['src/pages/index/vod-wx-sdk-v2.js', (modulePath) => modulePath.indexOf('vod-wx-sdk-v2') >= 0],
399
- include: ['src/pages/index/vod-wx-sdk-v2.js', (modulePath) => modulePath.indexOf('vod-wx-sdk-v2') >= 0],
400
- },
401
- },
402
- }),
403
- );
404
- expect(res.messages.length).toEqual(3);
405
-
406
- res = await validator(
407
- getConfig({
408
- mini: {
409
- compile: {
410
- exclude: [null, []],
411
- include: [1, {}],
412
- },
413
- },
414
- }),
415
- );
416
- expect(res.messages.length).toEqual(6);
417
- });
418
-
419
- it('mini.webpackChain', async () => {
420
- let res = await validator(
421
- getConfig({
422
- mini: {
423
- webpackChain(chain, webpack) {
424
- console.log(chain, webpack);
425
- },
426
- },
427
- }),
428
- );
429
- expect(res.messages.length).toEqual(3);
430
-
431
- res = await validator(
432
- getConfig({
433
- mini: {
434
- webpackChain: 'some',
435
- },
436
- }),
437
- );
438
- expect(res.messages.length).toEqual(3);
439
- });
440
-
441
- it('mini.commonChunks', async () => {
442
- let res = await validator(
443
- getConfig({
444
- mini: {
445
- commonChunks: ['runtime', 'vendors', 'taro', 'common'],
446
- },
447
- }),
448
- );
449
- expect(res.messages.length).toEqual(3);
450
-
451
- res = await validator(
452
- getConfig({
453
- mini: {
454
- commonChunks(commonChunks) {
455
- commonChunks.push('yourCustomCommonChunkName');
456
- return commonChunks;
457
- },
458
- },
459
- }),
460
- );
461
- expect(res.messages.length).toEqual(3);
462
-
463
- res = await validator(
464
- getConfig({
465
- mini: {
466
- commonChunks: 1,
467
- },
468
- }),
469
- );
470
- expect(res.messages.length).toEqual(3);
471
- });
472
-
473
- it('mini.addChunkPages', async () => {
474
- let res = await validator(
475
- getConfig({
476
- mini: {
477
- addChunkPages(pages, pagesNames) {
478
- console.log(pages, pagesNames);
479
- },
480
- },
481
- }),
482
- );
483
- expect(res.messages.length).toEqual(3);
484
-
485
- res = await validator(
486
- getConfig({
487
- mini: {
488
- addChunkPages: 1,
489
- },
490
- }),
491
- );
492
- expect(res.messages.length).toEqual(3);
493
- });
494
-
495
- it('mini.postcss', async () => {
496
- let res = await validator(
497
- getConfig({
498
- mini: {
499
- postcss: {
500
- autoprefixer: {
501
- enable: true,
502
- config: {},
503
- },
504
- },
505
- },
506
- }),
507
- );
508
- expect(res.messages.length).toEqual(3);
509
-
510
- res = await validator(
511
- getConfig({
512
- mini: {
513
- postcss: {
514
- autoprefixer: {
515
- enable: 1,
516
- config: 'a',
517
- },
518
- pxtransform: true,
519
- },
520
- },
521
- }),
522
- );
523
- expect(res.messages.length).toEqual(5);
524
- });
525
-
526
- it('mini.output', async () => {
527
- let res = await validator(
528
- getConfig({
529
- mini: {
530
- output: {},
531
- },
532
- }),
533
- );
534
- expect(res.messages.length).toEqual(3);
535
-
536
- res = await validator(
537
- getConfig({
538
- mini: {
539
- output: 1,
540
- },
541
- }),
542
- );
543
- expect(res.messages.length).toEqual(3);
544
- });
545
-
546
- it("mini's third party options", async () => {
547
- const res = await validator(
548
- getConfig({
549
- mini: {
550
- cssLoaderOption: {},
551
- styleLoaderOption: {},
552
- sassLoaderOption: {},
553
- lessLoaderOption: {},
554
- stylusLoaderOption: {},
555
- mediaUrlLoaderOption: {},
556
- fontUrlLoaderOption: {},
557
- imageUrlLoaderOption: {},
558
- miniCssExtractPluginOption: {},
559
- },
560
- }),
561
- );
562
- expect(res.messages.length).toEqual(3);
563
- });
564
-
565
- it('h5.devServer', async () => {
566
- let res = await validator(
567
- getConfig({
568
- h5: {
569
- devServer: {
570
- port: 10086,
571
- },
572
- },
573
- }),
574
- );
575
- expect(res.messages.length).toEqual(3);
576
-
577
- res = await validator(
578
- getConfig({
579
- h5: {
580
- devServer: 1,
581
- },
582
- }),
583
- );
584
- expect(res.messages.length).toEqual(3);
585
- });
586
-
587
- it('h5.output', async () => {
588
- let res = await validator(
589
- getConfig({
590
- h5: {
591
- output: {
592
- filename: 'js/[name].[hash:8].js',
593
- chunkFilename: 'js/[name].[chunkhash:8].js',
594
- },
595
- },
596
- }),
597
- );
598
- expect(res.messages.length).toEqual(3);
599
-
600
- res = await validator(
601
- getConfig({
602
- h5: {
603
- output: 1,
604
- },
605
- }),
606
- );
607
- expect(res.messages.length).toEqual(3);
608
- });
609
-
610
- it('h5.publicPath', async () => {
611
- let res = await validator(
612
- getConfig({
613
- h5: {
614
- publicPath: '/',
615
- },
616
- }),
617
- );
618
- expect(res.messages.length).toEqual(3);
619
-
620
- res = await validator(
621
- getConfig({
622
- h5: {
623
- publicPath: 1,
624
- },
625
- }),
626
- );
627
- expect(res.messages.length).toEqual(3);
628
- });
629
-
630
- it('h5.staticDirectory', async () => {
631
- let res = await validator(
632
- getConfig({
633
- h5: {
634
- staticDirectory: '/',
635
- },
636
- }),
637
- );
638
- expect(res.messages.length).toEqual(3);
639
-
640
- res = await validator(
641
- getConfig({
642
- h5: {
643
- staticDirectory: 1,
644
- },
645
- }),
646
- );
647
- expect(res.messages.length).toEqual(3);
648
- });
649
-
650
- it('h5.chunkDirectory', async () => {
651
- let res = await validator(
652
- getConfig({
653
- h5: {
654
- chunkDirectory: '/',
655
- },
656
- }),
657
- );
658
- expect(res.messages.length).toEqual(3);
659
-
660
- res = await validator(
661
- getConfig({
662
- h5: {
663
- chunkDirectory: 1,
664
- },
665
- }),
666
- );
667
- expect(res.messages.length).toEqual(3);
668
- });
669
-
670
- it('h5.webpackChain', async () => {
671
- let res = await validator(
672
- getConfig({
673
- h5: {
674
- webpackChain(chain, webpack) {
675
- console.log(chain, webpack);
676
- },
677
- },
678
- }),
679
- );
680
- expect(res.messages.length).toEqual(3);
681
-
682
- res = await validator(
683
- getConfig({
684
- h5: {
685
- webpackChain: 'some',
686
- },
687
- }),
688
- );
689
- expect(res.messages.length).toEqual(3);
690
- });
691
-
692
- // it('h5.webpack[DEPRECATED]', async () => {
693
- // const res = await validator(getConfig({
694
- // h5: {
695
- // webpack: 1
696
- // }
697
- // }))
698
- // expect(res.messages.length).toEqual(3)
699
- // expect(res.messages[0].content).toEqual('h5.webpack "h5.webpack" is not allowed')
700
- // })
701
-
702
- it('h5.router', async () => {
703
- let res = await validator(
704
- getConfig({
705
- h5: {
706
- router: {
707
- mode: 'hash',
708
- },
709
- },
710
- }),
711
- );
712
- expect(res.messages.length).toEqual(3);
713
-
714
- res = await validator(
715
- getConfig({
716
- h5: {
717
- router: 1,
718
- },
719
- }),
720
- );
721
- expect(res.messages.length).toEqual(3);
722
- });
723
-
724
- it('h5.entry', async () => {
725
- let res = await validator(
726
- getConfig({
727
- h5: {
728
- entry: './path/to/my/entry/file.js',
729
- },
730
- }),
731
- );
732
- expect(res.messages.length).toEqual(3);
733
-
734
- res = await validator(
735
- getConfig({
736
- h5: {
737
- entry: ['./path/to/my/entry/file.js', './path/other/file.js'],
738
- },
739
- }),
740
- );
741
- expect(res.messages.length).toEqual(3);
742
-
743
- res = await validator(
744
- getConfig({
745
- h5: {
746
- entry: {
747
- main: './path/to/my/entry/file.js',
748
- },
749
- },
750
- }),
751
- );
752
- expect(res.messages.length).toEqual(3);
753
-
754
- res = await validator(
755
- getConfig({
756
- h5: {
757
- entry: {
758
- main: ['./path/to/my/entry/file.js', './path/other/file.js'],
759
- },
760
- },
761
- }),
762
- );
763
- expect(res.messages.length).toEqual(3);
764
-
765
- res = await validator(
766
- getConfig({
767
- h5: {
768
- entry: () => './demo',
769
- },
770
- }),
771
- );
772
- expect(res.messages.length).toEqual(3);
773
- });
774
-
775
- it('h5.enableSourceMap', async () => {
776
- let res = await validator(
777
- getConfig({
778
- h5: {
779
- enableSourceMap: true,
780
- },
781
- }),
782
- );
783
- expect(res.messages.length).toEqual(3);
784
-
785
- res = await validator(
786
- getConfig({
787
- h5: {
788
- enableSourceMap: 1,
789
- },
790
- }),
791
- );
792
- expect(res.messages.length).toEqual(3);
793
- });
794
-
795
- it('h5.enableExtract', async () => {
796
- let res = await validator(
797
- getConfig({
798
- h5: {
799
- enableExtract: true,
800
- },
801
- }),
802
- );
803
- expect(res.messages.length).toEqual(3);
804
-
805
- res = await validator(
806
- getConfig({
807
- h5: {
808
- enableExtract: 1,
809
- },
810
- }),
811
- );
812
- expect(res.messages.length).toEqual(3);
813
- });
814
-
815
- it('h5.esnextModules', async () => {
816
- let res = await validator(
817
- getConfig({
818
- h5: {
819
- esnextModules: ['taro-ui'],
820
- },
821
- }),
822
- );
823
- expect(res.messages.length).toEqual(3);
824
-
825
- res = await validator(
826
- getConfig({
827
- h5: {
828
- esnextModules: [1, true, {}],
829
- },
830
- }),
831
- );
832
- expect(res.messages.length).toEqual(4);
833
-
834
- res = await validator(getConfig({ h5: 1 }));
835
- expect(res.messages.length).toEqual(3);
836
- });
837
-
838
- it('h5.postcss', async () => {
839
- let res = await validator(
840
- getConfig({
841
- h5: {
842
- postcss: {
843
- autoprefixer: {
844
- enable: true,
845
- config: {},
846
- },
847
- },
848
- },
849
- }),
850
- );
851
- expect(res.messages.length).toEqual(3);
852
-
853
- res = await validator(
854
- getConfig({
855
- h5: {
856
- postcss: {
857
- autoprefixer: {
858
- enable: 1,
859
- config: 'a',
860
- },
861
- pxtransform: true,
862
- },
863
- },
864
- }),
865
- );
866
- expect(res.messages.length).toEqual(5);
867
- });
868
-
869
- it("h5's third party options", async () => {
870
- const res = await validator(
871
- getConfig({
872
- h5: {
873
- cssLoaderOption: {},
874
- styleLoaderOption: {},
875
- sassLoaderOption: {},
876
- lessLoaderOption: {},
877
- stylusLoaderOption: {},
878
- mediaUrlLoaderOption: {},
879
- fontUrlLoaderOption: {},
880
- imageUrlLoaderOption: {},
881
- miniCssExtractPluginOption: {},
882
- },
883
- }),
884
- );
885
- expect(res.messages.length).toEqual(3);
886
- });
887
-
888
- it('unknow', async () => {
889
- const res = await validator(
890
- getConfig({
891
- unknow: {},
892
- }),
893
- );
894
- expect(res.messages.length).toEqual(3);
895
- });
896
-
897
- it('mini.unknow', async () => {
898
- const res = await validator(
899
- getConfig({
900
- mini: {
901
- unknow: {},
902
- },
903
- }),
904
- );
905
- expect(res.messages.length).toEqual(3);
906
- });
907
-
908
- it('h5.unknow', async () => {
909
- const res = await validator(
910
- getConfig({
911
- h5: {
912
- unknow: {},
913
- },
914
- }),
915
- );
916
- expect(res.messages.length).toEqual(3);
917
- });
918
- });