From 06ce9f0ab810e9cbe9ca71e60a6bf1a38cf99e69 Mon Sep 17 00:00:00 2001 From: nikimanoledaki <18622989+nikimanoledaki@users.noreply.github.com> Date: Tue, 29 Jun 2021 14:19:59 +0100 Subject: [PATCH] Add unit tests for updating multiple ng --- pkg/actions/nodegroup/update_test.go | 61 +++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/pkg/actions/nodegroup/update_test.go b/pkg/actions/nodegroup/update_test.go index 8f3ef92b37e..b83095f6bda 100644 --- a/pkg/actions/nodegroup/update_test.go +++ b/pkg/actions/nodegroup/update_test.go @@ -49,7 +49,7 @@ var _ = Describe("Update", func() { Expect(err).To(MatchError(ContainSubstring("could not find managed nodegroup with name \"my-ng\""))) }) - It("[happy path] successfully updates nodegroup with updateConfig and maxUnavailable", func() { + It("[happy path] successfully updates a nodegroup with updateConfig and maxUnavailable", func() { p.MockEKS().On("DescribeNodegroup", &awseks.DescribeNodegroupInput{ ClusterName: &clusterName, NodegroupName: &ngName, @@ -77,4 +77,63 @@ var _ = Describe("Update", func() { err := m.Update() Expect(err).NotTo(HaveOccurred()) }) + + It("[happy path] successfully updates multiple nodegroups with updateConfig and maxUnavailable", func() { + p.MockEKS().On("DescribeNodegroup", &awseks.DescribeNodegroupInput{ + ClusterName: &clusterName, + NodegroupName: &ngName, + }).Return(&awseks.DescribeNodegroupOutput{ + Nodegroup: &awseks.Nodegroup{ + UpdateConfig: &awseks.NodegroupUpdateConfig{ + MaxUnavailable: aws.Int64(4), + }, + }, + }, nil) + + p.MockEKS().On("DescribeNodegroup", &awseks.DescribeNodegroupInput{ + ClusterName: &clusterName, + NodegroupName: aws.String("ng-2"), + }).Return(&awseks.DescribeNodegroupOutput{ + Nodegroup: &awseks.Nodegroup{ + UpdateConfig: &awseks.NodegroupUpdateConfig{ + MaxUnavailable: aws.Int64(4), + }, + }, + }, nil) + + p.MockEKS().On("UpdateNodegroupConfig", &awseks.UpdateNodegroupConfigInput{ + UpdateConfig: &awseks.NodegroupUpdateConfig{ + MaxUnavailable: aws.Int64(6), + }, + ClusterName: &clusterName, + NodegroupName: &ngName, + }).Return(nil, nil) + + p.MockEKS().On("UpdateNodegroupConfig", &awseks.UpdateNodegroupConfigInput{ + UpdateConfig: &awseks.NodegroupUpdateConfig{ + MaxUnavailable: aws.Int64(6), + }, + ClusterName: &clusterName, + NodegroupName: aws.String("ng-2"), + }).Return(nil, nil) + + cfg.ManagedNodeGroups[0].UpdateConfig = &api.NodeGroupUpdateConfig{ + MaxUnavailable: aws.Int(6), + } + + newNg := &api.ManagedNodeGroup{ + NodeGroupBase: &api.NodeGroupBase{ + Name: "ng-2", + }, + UpdateConfig: &api.NodeGroupUpdateConfig{ + MaxUnavailable: aws.Int(6), + }, + } + + cfg.ManagedNodeGroups = append(cfg.ManagedNodeGroups, newNg) + + m = New(cfg, &eks.ClusterProvider{Provider: p}, nil) + err := m.Update() + Expect(err).NotTo(HaveOccurred()) + }) })