@@ -9,6 +9,9 @@ describe('Bootstrap Integration Tests', () => {
99 expect ( Bootstrap . default ) . to . be . a ( 'function' ) ;
1010 expect ( interactive . inquireApp ) . to . be . a ( 'function' ) ;
1111 expect ( interactive . inquireRunDevServer ) . to . be . a ( 'function' ) ;
12+ expect ( interactive . inquireAppType ) . to . be . a ( 'function' ) ;
13+ expect ( interactive . inquireCloneDirectory ) . to . be . a ( 'function' ) ;
14+ expect ( interactive . inquireLivePreviewSupport ) . to . be . a ( 'function' ) ;
1215 expect ( utils . setupEnvironments ) . to . be . a ( 'function' ) ;
1316 } ) ;
1417
@@ -22,6 +25,37 @@ describe('Bootstrap Integration Tests', () => {
2225 expect ( BootstrapCommand . flags ) . to . have . property ( 'org' ) ;
2326 expect ( BootstrapCommand . flags ) . to . have . property ( 'stack-name' ) ;
2427 expect ( BootstrapCommand . flags ) . to . have . property ( 'yes' ) ;
28+ expect ( BootstrapCommand . flags ) . to . have . property ( 'alias' ) ;
29+ expect ( BootstrapCommand . flags ) . to . have . property ( 'app-type' ) ;
30+ } ) ;
31+
32+ it ( 'should validate alias flag properties' , ( ) => {
33+ const BootstrapCommand = require ( '../lib/commands/cm/bootstrap' ) . default ;
34+ const aliasFlag = BootstrapCommand . flags . alias ;
35+
36+ expect ( aliasFlag ) . to . exist ;
37+ expect ( aliasFlag . char ) . to . equal ( 'a' ) ;
38+ expect ( aliasFlag . description ) . to . include ( 'Alias of the management token' ) ;
39+ } ) ;
40+
41+ it ( 'should validate flag exclusivity' , ( ) => {
42+ const BootstrapCommand = require ( '../lib/commands/cm/bootstrap' ) . default ;
43+
44+ // stack-api-key should be exclusive with org and stack-name
45+ expect ( BootstrapCommand . flags [ 'stack-api-key' ] . exclusive ) . to . include ( 'org' ) ;
46+ expect ( BootstrapCommand . flags [ 'stack-api-key' ] . exclusive ) . to . include ( 'stack-name' ) ;
47+ expect ( BootstrapCommand . flags . org . exclusive ) . to . include ( 'stack-api-key' ) ;
48+ expect ( BootstrapCommand . flags [ 'stack-name' ] . exclusive ) . to . include ( 'stack-api-key' ) ;
49+ } ) ;
50+
51+ it ( 'should validate run-dev-server flag properties' , ( ) => {
52+ const BootstrapCommand = require ( '../lib/commands/cm/bootstrap' ) . default ;
53+ const runDevServerFlag = BootstrapCommand . flags [ 'run-dev-server' ] ;
54+
55+ expect ( runDevServerFlag ) . to . exist ;
56+ expect ( runDevServerFlag . type ) . to . equal ( 'boolean' ) ;
57+ expect ( runDevServerFlag . default ) . to . be . false ;
58+ expect ( runDevServerFlag . description ) . to . include ( 'development server after setup' ) ;
2559 } ) ;
2660
2761 it ( 'should validate GitHub client exports' , ( ) => {
@@ -40,4 +74,68 @@ describe('Bootstrap Integration Tests', () => {
4074 expect ( config . default ) . to . have . property ( 'starterApps' ) ;
4175 expect ( config . default ) . to . have . property ( 'sampleApps' ) ;
4276 } ) ;
77+
78+ it ( 'should validate BootstrapOptions interface' , ( ) => {
79+ const Bootstrap = require ( '../lib/bootstrap/index' ) ;
80+
81+ // Verify that BootstrapOptions includes all required properties
82+ // This is a structural test to ensure the interface is properly defined
83+ const mockOptions = {
84+ cloneDirectory : '/test/path' ,
85+ seedParams : {
86+ stackAPIKey : 'test-key' ,
87+ managementTokenAlias : 'test-alias' ,
88+ managementToken : 'test-token' ,
89+ } ,
90+ appConfig : {
91+ configKey : 'test-app' ,
92+ displayName : 'Test App' ,
93+ source : 'test/repo' ,
94+ stack : 'test/repo' ,
95+ master_locale : 'en-us' ,
96+ } ,
97+ managementAPIClient : { } ,
98+ region : { } ,
99+ appType : 'starterapp' ,
100+ livePreviewEnabled : false ,
101+ runDevServer : false ,
102+ master_locale : 'en-us' ,
103+ } ;
104+
105+ // Verify that the Bootstrap class can be instantiated with these options
106+ expect ( ( ) => {
107+ // We can't actually instantiate without proper setup, but we can verify structure
108+ const options = mockOptions ;
109+ expect ( options . seedParams ) . to . have . property ( 'managementTokenAlias' ) ;
110+ expect ( options . seedParams ) . to . have . property ( 'managementToken' ) ;
111+ expect ( options ) . to . have . property ( 'appType' ) ;
112+ expect ( options ) . to . have . property ( 'livePreviewEnabled' ) ;
113+ expect ( options ) . to . have . property ( 'runDevServer' ) ;
114+ expect ( options ) . to . have . property ( 'master_locale' ) ;
115+ } ) . to . not . throw ( ) ;
116+ } ) ;
117+
118+ it ( 'should validate SeedParams interface includes managementTokenAlias and managementToken' , ( ) => {
119+ // Verify that SeedParams interface includes the new properties
120+ const mockSeedParams = {
121+ stackAPIKey : 'test-key' ,
122+ org : 'test-org' ,
123+ stackName : 'test-stack' ,
124+ yes : 'yes' ,
125+ managementTokenAlias : 'test-alias' ,
126+ managementToken : 'test-token' ,
127+ } ;
128+
129+ expect ( mockSeedParams ) . to . have . property ( 'managementTokenAlias' ) ;
130+ expect ( mockSeedParams ) . to . have . property ( 'managementToken' ) ;
131+ expect ( mockSeedParams . managementTokenAlias ) . to . equal ( 'test-alias' ) ;
132+ expect ( mockSeedParams . managementToken ) . to . equal ( 'test-token' ) ;
133+ } ) ;
134+
135+ it ( 'should validate DEFAULT_MASTER_LOCALE constant' , ( ) => {
136+ const BootstrapCommand = require ( '../lib/commands/cm/bootstrap' ) . default ;
137+ const { DEFAULT_MASTER_LOCALE } = require ( '../lib/commands/cm/bootstrap' ) ;
138+
139+ expect ( DEFAULT_MASTER_LOCALE ) . to . equal ( 'en-us' ) ;
140+ } ) ;
43141} ) ;
0 commit comments