@@ -29,6 +29,7 @@ import {
29
29
printWelcomeMessage ,
30
30
relativeTemplateToWorkspacePath ,
31
31
relativeWorkspaceToTemplatePath ,
32
+ shouldUpdateDependency ,
32
33
} from "../../../../src/internal/cli/init/init.js" ;
33
34
import { getTemplates } from "../../../../src/internal/cli/init/template.js" ;
34
35
@@ -233,7 +234,7 @@ describe("copyProjectFiles", () => {
233
234
describe ( "installProjectDependencies" , async ( ) => {
234
235
useTmpDir ( "installProjectDependencies" ) ;
235
236
236
- disableConsole ( ) ;
237
+ // disableConsole();
237
238
238
239
const templates = await getTemplates ( ) ;
239
240
@@ -357,7 +358,7 @@ describe("installProjectDependencies", async () => {
357
358
packageJson : {
358
359
name : "test" ,
359
360
version : "0.0.1" ,
360
- devDependencies : { "fake-dependency" : "^ 1.2.3" } , // <-- required version
361
+ devDependencies : { "fake-dependency" : ">= 1.2.3" } , // <-- required version
361
362
} ,
362
363
path : process . cwd ( ) ,
363
364
files : [ ] ,
@@ -367,7 +368,7 @@ describe("installProjectDependencies", async () => {
367
368
"package.json" ,
368
369
JSON . stringify ( {
369
370
type : "module" ,
370
- devDependencies : { "fake-dependency" : ">= 1.2.3" } , // <-- version range
371
+ devDependencies : { "fake-dependency" : "^ 1.2.3" } , // <-- version range
371
372
} ) ,
372
373
) ;
373
374
await installProjectDependencies ( process . cwd ( ) , template , false , true ) ;
@@ -414,3 +415,166 @@ describe("initHardhat", async () => {
414
415
) ;
415
416
}
416
417
} ) ;
418
+
419
+ describe ( "shouldUpdateDependency" , ( ) => {
420
+ const testCases = [
421
+ {
422
+ workspaceVersion : "1.0.0" ,
423
+ templateVersion : "1.0.0" ,
424
+ expectedResult : false ,
425
+ } ,
426
+ {
427
+ workspaceVersion : "1.0.0" ,
428
+ templateVersion : "1.2.3" ,
429
+ expectedResult : true ,
430
+ } ,
431
+ {
432
+ workspaceVersion : "1.2.3" ,
433
+ templateVersion : "1.0.0" ,
434
+ expectedResult : true ,
435
+ } ,
436
+ {
437
+ workspaceVersion : "1.2.3" ,
438
+ templateVersion : "^1.2.3" ,
439
+ expectedResult : false ,
440
+ } ,
441
+ {
442
+ workspaceVersion : "^1.2.3" ,
443
+ templateVersion : "1.2.3" ,
444
+ expectedResult : true ,
445
+ } ,
446
+ {
447
+ workspaceVersion : ">= 1.2.3" ,
448
+ templateVersion : "^1.2.3" ,
449
+ expectedResult : true ,
450
+ } ,
451
+ {
452
+ workspaceVersion : "^1.2.3" ,
453
+ templateVersion : ">= 1.2.3" ,
454
+ expectedResult : false ,
455
+ } ,
456
+ {
457
+ workspaceVersion : "1.0.0-dev" ,
458
+ templateVersion : "1.0.0-dev" ,
459
+ expectedResult : false ,
460
+ } ,
461
+ {
462
+ workspaceVersion : "1.0.0-dev" ,
463
+ templateVersion : "1.2.3-dev" ,
464
+ expectedResult : true ,
465
+ } ,
466
+ {
467
+ workspaceVersion : "1.2.3-dev" ,
468
+ templateVersion : "1.0.0-dev" ,
469
+ expectedResult : true ,
470
+ } ,
471
+ {
472
+ workspaceVersion : "1.2.3-dev" ,
473
+ templateVersion : "^1.2.3-dev" ,
474
+ expectedResult : false ,
475
+ } ,
476
+ {
477
+ workspaceVersion : "^1.2.3-dev" ,
478
+ templateVersion : "1.2.3-dev" ,
479
+ expectedResult : true ,
480
+ } ,
481
+ {
482
+ workspaceVersion : ">= 1.2.3-dev" ,
483
+ templateVersion : "^1.2.3-dev" ,
484
+ expectedResult : true ,
485
+ } ,
486
+ {
487
+ workspaceVersion : "^1.2.3-dev" ,
488
+ templateVersion : ">= 1.2.3-dev" ,
489
+ expectedResult : false ,
490
+ } ,
491
+ {
492
+ workspaceVersion : "1.0.0" ,
493
+ templateVersion : "1.0.0-dev" ,
494
+ expectedResult : true ,
495
+ } ,
496
+ {
497
+ workspaceVersion : "1.0.0-dev" ,
498
+ templateVersion : "1.0.0" ,
499
+ expectedResult : true ,
500
+ } ,
501
+ {
502
+ workspaceVersion : "1.0.0-dev" ,
503
+ templateVersion : "1.2.3" ,
504
+ expectedResult : true ,
505
+ } ,
506
+ {
507
+ workspaceVersion : "1.0.0" ,
508
+ templateVersion : "1.2.3-dev" ,
509
+ expectedResult : true ,
510
+ } ,
511
+ {
512
+ workspaceVersion : "1.2.3" ,
513
+ templateVersion : "1.0.0-dev" ,
514
+ expectedResult : true ,
515
+ } ,
516
+ {
517
+ workspaceVersion : "1.2.3-dev" ,
518
+ templateVersion : "1.0.0" ,
519
+ expectedResult : true ,
520
+ } ,
521
+ {
522
+ workspaceVersion : "1.2.3" ,
523
+ templateVersion : "^1.2.3-dev" ,
524
+ expectedResult : false ,
525
+ } ,
526
+ {
527
+ workspaceVersion : "1.2.3-dev" ,
528
+ templateVersion : "^1.2.3" ,
529
+ expectedResult : true ,
530
+ } ,
531
+ {
532
+ workspaceVersion : "^1.2.3" ,
533
+ templateVersion : "1.2.3-dev" ,
534
+ expectedResult : true ,
535
+ } ,
536
+ {
537
+ workspaceVersion : "^1.2.3-dev" ,
538
+ templateVersion : "1.2.3" ,
539
+ expectedResult : true ,
540
+ } ,
541
+ {
542
+ workspaceVersion : ">= 1.2.3" ,
543
+ templateVersion : "^1.2.3-dev" ,
544
+ expectedResult : true ,
545
+ } ,
546
+ {
547
+ workspaceVersion : ">= 1.2.3-dev" ,
548
+ templateVersion : "^1.2.3" ,
549
+ expectedResult : true ,
550
+ } ,
551
+ {
552
+ workspaceVersion : "^1.2.3" ,
553
+ templateVersion : ">= 1.2.3-dev" ,
554
+ expectedResult : false ,
555
+ } ,
556
+ {
557
+ workspaceVersion : "^1.2.3-dev" ,
558
+ templateVersion : ">= 1.2.3" ,
559
+ expectedResult : true ,
560
+ } ,
561
+ {
562
+ workspaceVersion : "3.0.0-next.0" ,
563
+ templateVersion : "^3.0.0-next.0" ,
564
+ expectedResult : false ,
565
+ } ,
566
+ ] ;
567
+
568
+ for ( const {
569
+ workspaceVersion,
570
+ templateVersion,
571
+ expectedResult,
572
+ } of testCases ) {
573
+ it ( `should return ${ expectedResult } when workspace version is ${ workspaceVersion } and template version is ${ templateVersion } ` , ( ) => {
574
+ assert . equal (
575
+ shouldUpdateDependency ( workspaceVersion , templateVersion ) ,
576
+ expectedResult ,
577
+ ) ;
578
+ } ) ;
579
+ }
580
+ } ) ;
0 commit comments