@@ -51,6 +51,7 @@ func TestEKSAddonPlan(t *testing.T) {
5151 expect func (m * mock_eksiface.MockEKSAPIMockRecorder )
5252 expectCreateError bool
5353 expectDoError bool
54+ preserveOnDelete bool
5455 }{
5556 {
5657 name : "no desired and no installed" ,
@@ -333,6 +334,40 @@ func TestEKSAddonPlan(t *testing.T) {
333334 DeleteAddon (gomock .Eq (context .TODO ()), gomock .Eq (& eks.DeleteAddonInput {
334335 AddonName : & addon1Name ,
335336 ClusterName : & clusterName ,
337+ Preserve : false ,
338+ })).
339+ Return (& eks.DeleteAddonOutput {
340+ Addon : & ekstypes.Addon {
341+ AddonArn : aws .String (addonARN ),
342+ AddonName : aws .String (addon1Name ),
343+ AddonVersion : aws .String (addon1version ),
344+ ClusterName : aws .String (clusterName ),
345+ CreatedAt : & created ,
346+ ModifiedAt : & created ,
347+ Status : ekstypes .AddonStatusDeleting ,
348+ Tags : createTags (),
349+ },
350+ }, nil )
351+ m .WaitUntilAddonDeleted (gomock .Eq (context .TODO ()), gomock .Eq (& eks.DescribeAddonInput {
352+ AddonName : aws .String (addon1Name ),
353+ ClusterName : aws .String (clusterName ),
354+ }), maxActiveUpdateDeleteWait ).Return (nil )
355+ },
356+ installedAddons : []* EKSAddon {
357+ createInstalledAddon (addon1Name , addon1version , addonARN , addonStatusActive ),
358+ },
359+ expectCreateError : false ,
360+ expectDoError : false ,
361+ preserveOnDelete : true ,
362+ },
363+ {
364+ name : "1 installed and 0 desired - delete addon & preserve" ,
365+ expect : func (m * mock_eksiface.MockEKSAPIMockRecorder ) {
366+ m .
367+ DeleteAddon (gomock .Eq (context .TODO ()), gomock .Eq (& eks.DeleteAddonInput {
368+ AddonName : & addon1Name ,
369+ ClusterName : & clusterName ,
370+ Preserve : true ,
336371 })).
337372 Return (& eks.DeleteAddonOutput {
338373 Addon : & ekstypes.Addon {
@@ -385,7 +420,7 @@ func TestEKSAddonPlan(t *testing.T) {
385420
386421 ctx := context .TODO ()
387422
388- planner := NewPlan (clusterName , tc .desiredAddons , tc .installedAddons , eksMock , maxActiveUpdateDeleteWait )
423+ planner := NewPlan (clusterName , tc .desiredAddons , tc .installedAddons , eksMock , maxActiveUpdateDeleteWait , tc . preserveOnDelete )
389424 procedures , err := planner .Create (ctx )
390425 if tc .expectCreateError {
391426 g .Expect (err ).To (HaveOccurred ())
0 commit comments