@@ -5,47 +5,76 @@ import {
55} from "./install-mode-options.js" ;
66
77describe ( "install mode option helpers" , ( ) => {
8- it ( "applies logger, mode, and dryRun defaults" , ( ) => {
9- const logger = { warn : ( _message : string ) => { } } ;
10- const result = resolveInstallModeOptions ( { } , logger ) ;
8+ it . each ( [
9+ {
10+ name : "applies logger, mode, and dryRun defaults" ,
11+ params : { } ,
12+ expected : { loggerKey : "default" , mode : "install" , dryRun : false } ,
13+ } ,
14+ {
15+ name : "preserves explicit mode and dryRun values" ,
16+ params : { loggerKey : "explicit" , mode : "update" as const , dryRun : true } ,
17+ expected : { loggerKey : "explicit" , mode : "update" , dryRun : true } ,
18+ } ,
19+ {
20+ name : "preserves explicit false dryRun values" ,
21+ params : { mode : "update" as const , dryRun : false } ,
22+ expected : { loggerKey : "default" , mode : "update" , dryRun : false } ,
23+ } ,
24+ ] ) ( "$name" , ( { params, expected } ) => {
25+ const loggers = {
26+ default : { warn : ( _message : string ) => { } } ,
27+ explicit : { warn : ( _message : string ) => { } } ,
28+ } ;
1129
12- expect ( result ) . toEqual ( {
13- logger,
14- mode : "install" ,
15- dryRun : false ,
30+ expect (
31+ resolveInstallModeOptions (
32+ {
33+ logger : params . loggerKey ? loggers [ params . loggerKey ] : undefined ,
34+ mode : params . mode ,
35+ dryRun : params . dryRun ,
36+ } ,
37+ loggers . default ,
38+ ) ,
39+ ) . toEqual ( {
40+ logger : loggers [ expected . loggerKey ] ,
41+ mode : expected . mode ,
42+ dryRun : expected . dryRun ,
1643 } ) ;
1744 } ) ;
1845
19- it ( "preserves explicit mode and dryRun values" , ( ) => {
46+ it . each ( [
47+ {
48+ name : "uses default timeout when not provided" ,
49+ params : { } ,
50+ defaultTimeoutMs : undefined ,
51+ expectedTimeoutMs : 120_000 ,
52+ expectedMode : "install" ,
53+ expectedDryRun : false ,
54+ } ,
55+ {
56+ name : "honors custom timeout default override" ,
57+ params : { } ,
58+ defaultTimeoutMs : 5000 ,
59+ expectedTimeoutMs : 5000 ,
60+ expectedMode : "install" ,
61+ expectedDryRun : false ,
62+ } ,
63+ {
64+ name : "preserves explicit timeout values" ,
65+ params : { timeoutMs : 0 , mode : "update" as const , dryRun : true } ,
66+ defaultTimeoutMs : 5000 ,
67+ expectedTimeoutMs : 0 ,
68+ expectedMode : "update" ,
69+ expectedDryRun : true ,
70+ } ,
71+ ] ) ( "$name" , ( { params, defaultTimeoutMs, expectedTimeoutMs, expectedMode, expectedDryRun } ) => {
2072 const logger = { warn : ( _message : string ) => { } } ;
21- const result = resolveInstallModeOptions (
22- {
23- logger,
24- mode : "update" ,
25- dryRun : true ,
26- } ,
27- { warn : ( ) => { } } ,
28- ) ;
29-
30- expect ( result ) . toEqual ( {
31- logger,
32- mode : "update" ,
33- dryRun : true ,
34- } ) ;
35- } ) ;
36-
37- it ( "uses default timeout when not provided" , ( ) => {
38- const logger = { warn : ( _message : string ) => { } } ;
39- const result = resolveTimedInstallModeOptions ( { } , logger ) ;
40-
41- expect ( result . timeoutMs ) . toBe ( 120_000 ) ;
42- expect ( result . mode ) . toBe ( "install" ) ;
43- expect ( result . dryRun ) . toBe ( false ) ;
44- } ) ;
45-
46- it ( "honors custom timeout default override" , ( ) => {
47- const result = resolveTimedInstallModeOptions ( { } , { warn : ( ) => { } } , 5000 ) ;
73+ const result = resolveTimedInstallModeOptions ( params , logger , defaultTimeoutMs ) ;
4874
49- expect ( result . timeoutMs ) . toBe ( 5000 ) ;
75+ expect ( result . timeoutMs ) . toBe ( expectedTimeoutMs ) ;
76+ expect ( result . mode ) . toBe ( expectedMode ) ;
77+ expect ( result . dryRun ) . toBe ( expectedDryRun ) ;
78+ expect ( result . logger ) . toBe ( logger ) ;
5079 } ) ;
5180} ) ;
0 commit comments