@@ -158,6 +158,15 @@ func TestAWSDeployer_DeployStack_Success(t *testing.T) {
158158 // Test successful stack deployment
159159 ctx := context .Background ()
160160
161+ // Set up mock prompter for confirmation
162+ mockPrompter := & MockPrompter {}
163+ originalPrompter := prompt .GetDefaultPrompter ()
164+ prompt .SetPrompter (mockPrompter )
165+ defer prompt .SetPrompter (originalPrompter )
166+
167+ // Mock user confirmation (new stack creation requires confirmation)
168+ mockPrompter .On ("ConfirmDeployment" , "test-stack" ).Return (true , nil )
169+
161170 // Create temporary template file
162171 tmpDir := t .TempDir ()
163172 templateFile := filepath .Join (tmpDir , "test-template.json" )
@@ -215,9 +224,18 @@ func TestAWSDeployer_DeployStack_Success(t *testing.T) {
215224 assert .NoError (t , err )
216225 mockClient .AssertExpectations (t )
217226 mockCfnOps .AssertExpectations (t )
227+ mockPrompter .AssertExpectations (t )
218228}
219229
220230func TestAWSDeployer_DeployStack_WithEmptyTemplate (t * testing.T ) {
231+ // Set up mock prompter for confirmation
232+ mockPrompter := & MockPrompter {}
233+ originalPrompter := prompt .GetDefaultPrompter ()
234+ prompt .SetPrompter (mockPrompter )
235+ defer prompt .SetPrompter (originalPrompter )
236+
237+ // Mock user confirmation (new stack creation requires confirmation)
238+ mockPrompter .On ("ConfirmDeployment" , "test-stack" ).Return (true , nil )
221239 // Test deploy stack with empty template body
222240 ctx := context .Background ()
223241
@@ -253,9 +271,18 @@ func TestAWSDeployer_DeployStack_WithEmptyTemplate(t *testing.T) {
253271 assert .NoError (t , err )
254272 mockClient .AssertExpectations (t )
255273 mockCfnOps .AssertExpectations (t )
274+ mockPrompter .AssertExpectations (t )
256275}
257276
258277func TestAWSDeployer_DeployStack_AWSError (t * testing.T ) {
278+ // Set up mock prompter for confirmation
279+ mockPrompter := & MockPrompter {}
280+ originalPrompter := prompt .GetDefaultPrompter ()
281+ prompt .SetPrompter (mockPrompter )
282+ defer prompt .SetPrompter (originalPrompter )
283+
284+ // Mock user confirmation (new stack creation requires confirmation)
285+ mockPrompter .On ("ConfirmDeployment" , "test-stack" ).Return (true , nil )
259286 // Test deploy stack when AWS returns an error
260287 ctx := context .Background ()
261288
@@ -303,6 +330,7 @@ func TestAWSDeployer_DeployStack_AWSError(t *testing.T) {
303330
304331 mockClient .AssertExpectations (t )
305332 mockCfnOps .AssertExpectations (t )
333+ mockPrompter .AssertExpectations (t )
306334}
307335
308336func TestAWSDeployer_DeployStack_NoChanges (t * testing.T ) {
@@ -349,7 +377,7 @@ func TestAWSDeployer_DeployStack_NoChanges(t *testing.T) {
349377 // Execute
350378 err := deployer .DeployStack (ctx , stack )
351379
352- // Verify - should succeed with no error despite NoChangesError
380+ // Verify - should succeed with no error when no changes detected
353381 assert .NoError (t , err )
354382 mockClient .AssertExpectations (t )
355383 mockCfnOps .AssertExpectations (t )
@@ -528,6 +556,14 @@ func TestAWSDeployer_ValidateTemplate_ValidationError(t *testing.T) {
528556}
529557
530558func TestAWSDeployer_DeployStack_WithYAMLTemplate (t * testing.T ) {
559+ // Set up mock prompter for confirmation
560+ mockPrompter := & MockPrompter {}
561+ originalPrompter := prompt .GetDefaultPrompter ()
562+ prompt .SetPrompter (mockPrompter )
563+ defer prompt .SetPrompter (originalPrompter )
564+
565+ // Mock user confirmation (new stack creation requires confirmation)
566+ mockPrompter .On ("ConfirmDeployment" , "test-stack" ).Return (true , nil )
531567 // Test deploying stack with YAML template content
532568 ctx := context .Background ()
533569
@@ -573,12 +609,22 @@ Resources:
573609 assert .NoError (t , err )
574610 mockClient .AssertExpectations (t )
575611 mockCfnOps .AssertExpectations (t )
612+ mockPrompter .AssertExpectations (t )
576613}
577614
578615func TestAWSDeployer_DeployStack_WithMultipleParametersAndTags (t * testing.T ) {
579- // Test deploying stack with multiple parameters and tags
616+ // Test deployment with multiple parameters and tags
580617 ctx := context .Background ()
581618
619+ // Set up mock prompter for confirmation
620+ mockPrompter := & MockPrompter {}
621+ originalPrompter := prompt .GetDefaultPrompter ()
622+ prompt .SetPrompter (mockPrompter )
623+ defer prompt .SetPrompter (originalPrompter )
624+
625+ // Mock user confirmation (new stack creation requires confirmation)
626+ mockPrompter .On ("ConfirmDeployment" , "test-stack" ).Return (true , nil )
627+
582628 // Set up mocks
583629 mockCfnOps := & MockCloudFormationOperations {}
584630 mockClient := & MockAWSClient {}
@@ -616,4 +662,5 @@ func TestAWSDeployer_DeployStack_WithMultipleParametersAndTags(t *testing.T) {
616662 assert .NoError (t , err )
617663 mockClient .AssertExpectations (t )
618664 mockCfnOps .AssertExpectations (t )
665+ mockPrompter .AssertExpectations (t )
619666}
0 commit comments