@@ -68,6 +68,7 @@ func TestGenerationAzureSimple(t *testing.T) {
6868 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
6969 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
7070 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
71+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
7172 MsgRsp {cmd .QuestionAzureConfigAdvanced , "n" },
7273 MsgRsp {cmd .QuestionRunTfPlan , "n" },
7374 })
@@ -108,6 +109,7 @@ func TestGenerationAzureCustomizedOutputLocation(t *testing.T) {
108109 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
109110 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
110111 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
112+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
111113 MsgRsp {cmd .QuestionAzureConfigAdvanced , "y" },
112114 MsgMenu {cmd .AzureAdvancedOptDone , 5 },
113115 MsgRsp {cmd .QuestionAzureCustomizeOutputLocation , dir },
@@ -146,6 +148,7 @@ func TestGenerationAzureConfigOnly(t *testing.T) {
146148 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
147149 MsgRsp {cmd .QuestionEnableActivityLog , "n" },
148150 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
151+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
149152 MsgRsp {cmd .QuestionAzureConfigAdvanced , "n" },
150153 MsgRsp {cmd .QuestionRunTfPlan , "n" },
151154 })
@@ -179,6 +182,7 @@ func TestGenerationAzureActivityLogOnly(t *testing.T) {
179182 MsgRsp {cmd .QuestionAzureEnableConfig , "n" },
180183 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
181184 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
185+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
182186 MsgRsp {cmd .QuestionAzureConfigAdvanced , "n" },
183187 MsgRsp {cmd .QuestionRunTfPlan , "n" },
184188 })
@@ -215,6 +219,7 @@ func TestGenerationAzureNoADEnabled(t *testing.T) {
215219 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
216220 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
217221 MsgRsp {cmd .QuestionEnableAdIntegration , "n" },
222+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
218223 MsgRsp {cmd .QuestionAzureConfigAdvanced , "y" },
219224 MsgMenu {cmd .AzureAdvancedOptLocation , 2 },
220225 MsgRsp {cmd .QuestionADApplicationPass , pass },
@@ -258,6 +263,7 @@ func TestGenerationAzureNamedConfig(t *testing.T) {
258263 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
259264 MsgRsp {cmd .QuestionEnableActivityLog , "n" },
260265 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
266+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
261267 MsgRsp {cmd .QuestionAzureConfigAdvanced , "y" },
262268
263269 MsgMenu {cmd .AzureAdvancedOptDone , 0 },
@@ -300,6 +306,7 @@ func TestGenerationAzureNamedActivityLog(t *testing.T) {
300306 MsgRsp {cmd .QuestionAzureEnableConfig , "n" },
301307 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
302308 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
309+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
303310 MsgRsp {cmd .QuestionAzureConfigAdvanced , "y" },
304311
305312 MsgMenu {cmd .AzureAdvancedOptDone , 0 },
@@ -340,6 +347,7 @@ func TestGenerationAzureAdvancedOptsDone(t *testing.T) {
340347 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
341348 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
342349 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
350+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
343351 MsgRsp {cmd .QuestionAzureConfigAdvanced , "y" },
344352
345353 MsgMenu {cmd .AzureAdvancedOptDone , 6 },
@@ -387,6 +395,7 @@ func TestGenerationAzureWithExistingTerraform(t *testing.T) {
387395 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
388396 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
389397 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
398+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
390399 MsgRsp {cmd .QuestionAzureConfigAdvanced , "y" },
391400 MsgMenu {cmd .AzureAdvancedOptDone , 5 },
392401 MsgRsp {cmd .QuestionAzureCustomizeOutputLocation , dir },
@@ -425,6 +434,7 @@ func TestGenerationAzureConfigAllSubs(t *testing.T) {
425434 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
426435 MsgRsp {cmd .QuestionEnableActivityLog , "n" },
427436 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
437+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
428438 MsgRsp {cmd .QuestionAzureConfigAdvanced , "y" },
429439 MsgMenu {cmd .AzureAdvancedOptDone , 1 },
430440 MsgRsp {cmd .QuestionEnableAllSubscriptions , "y" },
@@ -465,6 +475,7 @@ func TestGenerationAzureConfigMgmntGroup(t *testing.T) {
465475 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
466476 MsgRsp {cmd .QuestionEnableActivityLog , "n" },
467477 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
478+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
468479 MsgRsp {cmd .QuestionAzureConfigAdvanced , "y" },
469480
470481 MsgMenu {cmd .AzureAdvancedOptDone , 2 },
@@ -508,6 +519,7 @@ func TestGenerationAzureConfigSubs(t *testing.T) {
508519 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
509520 MsgRsp {cmd .QuestionEnableActivityLog , "n" },
510521 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
522+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
511523 MsgRsp {cmd .QuestionAzureConfigAdvanced , "y" },
512524
513525 MsgMenu {cmd .AzureAdvancedOptDone , 1 },
@@ -551,6 +563,7 @@ func TestGenerationAzureActivityLogSubs(t *testing.T) {
551563 MsgRsp {cmd .QuestionAzureEnableConfig , "n" },
552564 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
553565 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
566+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
554567 MsgRsp {cmd .QuestionAzureConfigAdvanced , "y" },
555568
556569 MsgMenu {cmd .AzureAdvancedOptDone , 1 },
@@ -595,6 +608,7 @@ func TestGenerationAzureActivityLogStorageAccount(t *testing.T) {
595608 MsgRsp {cmd .QuestionAzureEnableConfig , "n" },
596609 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
597610 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
611+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
598612 MsgRsp {cmd .QuestionAzureConfigAdvanced , "y" },
599613
600614 MsgMenu {cmd .AzureAdvancedOptDone , 3 },
@@ -641,6 +655,7 @@ func TestGenerationAzureActivityLogAllSubs(t *testing.T) {
641655 MsgRsp {cmd .QuestionAzureEnableConfig , "n" },
642656 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
643657 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
658+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
644659 MsgRsp {cmd .QuestionAzureConfigAdvanced , "y" },
645660
646661 MsgMenu {cmd .AzureAdvancedOptDone , 1 },
@@ -683,6 +698,7 @@ func TestGenerationAzureActivityLogLocation(t *testing.T) {
683698 MsgRsp {cmd .QuestionAzureEnableConfig , "n" },
684699 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
685700 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
701+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
686702 MsgRsp {cmd .QuestionAzureConfigAdvanced , "y" },
687703
688704 MsgMenu {cmd .AzureAdvancedOptDone , 2 },
@@ -728,6 +744,7 @@ func TestGenerationAzureOverwrite(t *testing.T) {
728744 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
729745 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
730746 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
747+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
731748 MsgRsp {cmd .QuestionAzureConfigAdvanced , "n" },
732749 MsgRsp {cmd .QuestionRunTfPlan , "n" },
733750 })
@@ -746,6 +763,7 @@ func TestGenerationAzureOverwrite(t *testing.T) {
746763 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
747764 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
748765 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
766+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
749767 MsgRsp {cmd .QuestionAzureConfigAdvanced , "n" },
750768 MsgRsp {"already exists, overwrite?" , "n" },
751769 MsgRsp {cmd .QuestionRunTfPlan , "n" },
@@ -781,6 +799,7 @@ func TestGenerationAzureOverwriteOutput(t *testing.T) {
781799 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
782800 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
783801 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
802+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
784803 MsgRsp {cmd .QuestionAzureConfigAdvanced , "n" },
785804 MsgRsp {cmd .QuestionRunTfPlan , "n" },
786805 })
@@ -801,6 +820,7 @@ func TestGenerationAzureOverwriteOutput(t *testing.T) {
801820 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
802821 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
803822 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
823+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
804824 MsgRsp {cmd .QuestionAzureConfigAdvanced , "n" },
805825 MsgRsp {"already exists, overwrite?" , "n" },
806826 MsgRsp {cmd .QuestionRunTfPlan , "n" },
@@ -830,6 +850,7 @@ func TestGenerationAzureLaceworkProfile(t *testing.T) {
830850 MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
831851 MsgRsp {cmd .QuestionEnableActivityLog , "y" },
832852 MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
853+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "n" },
833854 MsgRsp {cmd .QuestionAzureConfigAdvanced , "n" },
834855 MsgRsp {cmd .QuestionRunTfPlan , "n" },
835856 })
@@ -851,6 +872,41 @@ func TestGenerationAzureLaceworkProfile(t *testing.T) {
851872 assert .Equal (t , buildTf , tfResult )
852873}
853874
875+ func TestGenerationAzureWithSubscriptionID (t * testing.T ) {
876+ os .Setenv ("LW_NOCACHE" , "true" )
877+ defer os .Setenv ("LW_NOCACHE" , "" )
878+ var final string
879+ var runError error
880+ mockSubscriptionID := "111aaa1a-a1a1-11aa-a111-1aaaa1a11a11"
881+
882+ // Run CLI
883+ tfResult := runGenerateAzureTest (t ,
884+ func (c * expect.Console ) {
885+ expectsCliOutput (t , c , []MsgRspHandler {
886+ MsgRsp {cmd .QuestionAzureEnableConfig , "y" },
887+ MsgRsp {cmd .QuestionEnableActivityLog , "y" },
888+ MsgRsp {cmd .QuestionEnableAdIntegration , "y" },
889+ MsgRsp {cmd .QuestionAddAzureSubscriptionID , "y" },
890+ MsgRsp {cmd .QuestionAzureSubscriptionID , mockSubscriptionID },
891+ MsgRsp {cmd .QuestionAzureConfigAdvanced , "n" },
892+ MsgRsp {cmd .QuestionRunTfPlan , "n" },
893+ })
894+ final , _ = c .ExpectEOF ()
895+ },
896+ "generate" ,
897+ "cloud-account" ,
898+ "az" ,
899+ )
900+
901+ // Ensure CLI ran correctly
902+ assert .Nil (t , runError )
903+ assert .Contains (t , final , "Terraform code saved in" )
904+
905+ // Create the TF directly with lwgenerate and validate same result via CLI
906+ buildTf , _ := azure .NewTerraform (true , true , true , azure .WithSubscriptionID (mockSubscriptionID )).Generate ()
907+ assert .Equal (t , buildTf , tfResult )
908+ }
909+
854910func runGenerateAzureTest (t * testing.T , conditions func (* expect.Console ), args ... string ) string {
855911 os .Setenv ("HOME" , tfPath )
856912
0 commit comments