Skip to content

Commit f152187

Browse files
committed
chore: setup better go testing
1 parent b1eb399 commit f152187

File tree

1 file changed

+85
-10
lines changed

1 file changed

+85
-10
lines changed

cluster-autoscaler/cloudprovider/coreweave/coreweave_nodegroup_test.go

Lines changed: 85 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"context"
2121
"testing"
2222

23+
"github.com/stretchr/testify/require"
2324
apiv1 "k8s.io/api/core/v1"
2425
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2526
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
@@ -120,18 +121,92 @@ func TestIncreaseSize(t *testing.T) {
120121
}
121122

122123
func TestDeleteNodes(t *testing.T) {
123-
ng := makeTestNodeGroup("ng-1", "uid-1", 0, 5, 3)
124-
validNode := &apiv1.Node{
125-
ObjectMeta: metav1.ObjectMeta{
126-
Name: "node1",
127-
Labels: map[string]string{coreWeaveNodePoolUID: "uid-1"},
124+
initialTargetSize := int64(3)
125+
126+
testCases := map[string]struct {
127+
nodesToDelete []*apiv1.Node
128+
expectedTargetSize int
129+
expectedError error
130+
}{
131+
"reduce-target-size-by-one-node": {
132+
nodesToDelete: []*apiv1.Node{
133+
{
134+
ObjectMeta: metav1.ObjectMeta{
135+
Name: "node1",
136+
Labels: map[string]string{coreWeaveNodePoolUID: "uid-1"},
137+
},
138+
},
139+
},
140+
expectedTargetSize: 2,
141+
},
142+
"reduce-target-size-by-three-node": {
143+
nodesToDelete: []*apiv1.Node{
144+
{
145+
ObjectMeta: metav1.ObjectMeta{
146+
Name: "node1",
147+
Labels: map[string]string{coreWeaveNodePoolUID: "uid-1"},
148+
},
149+
},
150+
{
151+
ObjectMeta: metav1.ObjectMeta{
152+
Name: "node2",
153+
Labels: map[string]string{coreWeaveNodePoolUID: "uid-1"},
154+
},
155+
},
156+
{
157+
ObjectMeta: metav1.ObjectMeta{
158+
Name: "node3",
159+
Labels: map[string]string{coreWeaveNodePoolUID: "uid-1"},
160+
},
161+
},
162+
},
163+
expectedTargetSize: 0,
128164
},
129165
}
130-
nodes := []*apiv1.Node{
131-
validNode,
166+
167+
for name, tc := range testCases {
168+
t.Run(name, func(t *testing.T) {
169+
ng := makeTestNodeGroup("ng-1", "uid-1", 0, 5, initialTargetSize)
170+
171+
err := ng.DeleteNodes(tc.nodesToDelete)
172+
if tc.expectedError != nil {
173+
require.Equal(t, tc.expectedError, err)
174+
return
175+
}
176+
require.NoError(t, err)
177+
require.Equal(t, ng.nodepool.GetTargetSize(), tc.expectedTargetSize)
178+
})
132179
}
133-
err := ng.DeleteNodes(nodes)
134-
if err != nil && err != cloudprovider.ErrNotImplemented {
135-
t.Errorf("expected ErrNotImplemented or nil, got %v", err)
180+
}
181+
182+
func TestDecreaseTargetSize(t *testing.T) {
183+
testCases := map[string]struct {
184+
delta int
185+
expectedTargetSize int
186+
expectedError error
187+
}{
188+
"positive-delta": {
189+
delta: 2,
190+
expectedTargetSize: 1,
191+
},
192+
"negative-delta": {
193+
delta: -2,
194+
expectedTargetSize: 1,
195+
},
196+
}
197+
198+
for name, tc := range testCases {
199+
t.Run(name, func(t *testing.T) {
200+
ng := makeTestNodeGroup("ng-1", "uid-1", 1, 5, 3)
201+
202+
err := ng.DecreaseTargetSize(tc.delta)
203+
if tc.expectedError != nil {
204+
require.Error(t, err)
205+
require.Equal(t, tc.expectedError, err)
206+
return
207+
}
208+
require.NoError(t, err)
209+
require.Equal(t, tc.expectedTargetSize, ng.nodepool.GetTargetSize())
210+
})
136211
}
137212
}

0 commit comments

Comments
 (0)