Merge pull request #32423 from mmorel-35/testifylint-manual-assert-pkg-8

chore(pkg): refactor: convert tests to testify assert/require part 8
pull/32453/head
Terry Howe 4 days ago committed by GitHub
commit 78796e26bc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -21,6 +21,7 @@ import (
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"helm.sh/helm/v4/pkg/chart/common"
)
@ -76,15 +77,12 @@ func TestSaveChartNoRawData(t *testing.T) {
}
is := assert.New(t)
req := require.New(t)
data, err := json.Marshal(chrt)
if err != nil {
t.Fatal(err)
}
req.NoError(err)
res := &Chart{}
if err := json.Unmarshal(data, res); err != nil {
t.Fatal(err)
}
req.NoError(json.Unmarshal(data, res))
is.Equal([]*common.File(nil), res.Raw)
}

@ -272,8 +272,7 @@ func getRuntimeObjFromManifests(t *testing.T, manifests []string) []runtime.Obje
objects := []runtime.Object{}
for _, manifest := range manifests {
m := make(map[string]any)
err := yaml.Unmarshal([]byte(manifest), &m)
require.NoError(t, err)
require.NoError(t, yaml.Unmarshal([]byte(manifest), &m))
resource := &unstructured.Unstructured{Object: m}
objects = append(objects, resource)
}
@ -332,8 +331,7 @@ func TestStatusWaitForDelete(t *testing.T) {
for _, objToCreate := range objsToCreate {
u := objToCreate.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
objsToDelete := getRuntimeObjFromManifests(t, tt.manifestsToDelete)
for _, objToDelete := range objsToDelete {
@ -341,8 +339,7 @@ func TestStatusWaitForDelete(t *testing.T) {
gvr := getGVR(t, fakeMapper, u)
go func(gvr schema.GroupVersionResource, u *unstructured.Unstructured) {
time.Sleep(timeUntilPodDelete)
err := fakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName())
assert.NoError(t, err)
assert.NoError(t, fakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName()))
}(gvr, u)
}
resourceList := getResourceListFromRuntimeObjs(t, c, objsToCreate)
@ -352,9 +349,9 @@ func TestStatusWaitForDelete(t *testing.T) {
for _, expectedErrStr := range tt.expectErrs {
require.ErrorContains(t, err, expectedErrStr)
}
return
} else {
assert.NoError(t, err)
}
assert.NoError(t, err)
})
}
}
@ -375,8 +372,7 @@ func TestStatusWaitForDeleteNonExistentObject(t *testing.T) {
// Don't create the object to test that the wait for delete works when the object doesn't exist
objManifest := getRuntimeObjFromManifests(t, []string{podCurrentManifest})
resourceList := getResourceListFromRuntimeObjs(t, c, objManifest)
err := statusWaiter.WaitForDelete(resourceList, timeout)
assert.NoError(t, err)
assert.NoError(t, statusWaiter.WaitForDelete(resourceList, timeout))
}
func TestStatusWait(t *testing.T) {
@ -433,8 +429,7 @@ func TestStatusWait(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := statusWaiter.Wait(resourceList, time.Second*3)
@ -443,9 +438,9 @@ func TestStatusWait(t *testing.T) {
for _, expectedErrStr := range tt.expectErrStrs {
require.ErrorContains(t, err, expectedErrStr)
}
return
} else {
assert.NoError(t, err)
}
assert.NoError(t, err)
})
}
}
@ -490,8 +485,7 @@ func TestWaitForJobComplete(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := statusWaiter.WaitWithJobs(resourceList, time.Second*3)
@ -500,9 +494,9 @@ func TestWaitForJobComplete(t *testing.T) {
for _, expectedErrStr := range tt.expectErrStrs {
require.ErrorContains(t, err, expectedErrStr)
}
return
} else {
assert.NoError(t, err)
}
assert.NoError(t, err)
})
}
}
@ -553,8 +547,7 @@ func TestWatchForReady(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := statusWaiter.WatchUntilReady(resourceList, time.Second*3)
@ -563,9 +556,9 @@ func TestWatchForReady(t *testing.T) {
for _, expectedErrStr := range tt.expectErrStrs {
require.ErrorContains(t, err, expectedErrStr)
}
return
} else {
assert.NoError(t, err)
}
assert.NoError(t, err)
})
}
}
@ -657,8 +650,7 @@ func TestStatusWaitMultipleNamespaces(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
if strings.Contains(tt.name, "delete") {
@ -668,8 +660,7 @@ func TestStatusWaitMultipleNamespaces(t *testing.T) {
gvr := getGVR(t, fakeMapper, u)
go func(gvr schema.GroupVersionResource, u *unstructured.Unstructured) {
time.Sleep(timeUntilDelete)
err := fakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName())
assert.NoError(t, err)
assert.NoError(t, fakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName()))
}(gvr, u)
}
}
@ -681,9 +672,9 @@ func TestStatusWaitMultipleNamespaces(t *testing.T) {
for _, expectedErrStr := range tt.expectErrStrs {
require.ErrorContains(t, err, expectedErrStr)
}
return
} else {
assert.NoError(t, err)
}
assert.NoError(t, err)
})
}
}
@ -839,8 +830,7 @@ func TestStatusWaitRestrictedRBAC(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := baseFakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, baseFakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
if strings.Contains(tt.name, "delet") {
@ -850,8 +840,7 @@ func TestStatusWaitRestrictedRBAC(t *testing.T) {
gvr := getGVR(t, fakeMapper, u)
go func(gvr schema.GroupVersionResource, u *unstructured.Unstructured) {
time.Sleep(timeUntilDelete)
err := baseFakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName())
assert.NoError(t, err)
assert.NoError(t, baseFakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName()))
}(gvr, u)
}
}
@ -863,10 +852,10 @@ func TestStatusWaitRestrictedRBAC(t *testing.T) {
for _, expectedErr := range tt.expectErrs {
require.ErrorContains(t, err, expectedErr.Error())
}
return
} else {
require.NoError(t, err)
assert.False(t, restrictedConfig.clusterScopedListAttempted)
}
require.NoError(t, err)
assert.False(t, restrictedConfig.clusterScopedListAttempted)
})
}
}
@ -947,8 +936,7 @@ func TestStatusWaitMixedResources(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := baseFakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, baseFakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
if strings.Contains(tt.name, "delet") {
@ -958,8 +946,7 @@ func TestStatusWaitMixedResources(t *testing.T) {
gvr := getGVR(t, fakeMapper, u)
go func(gvr schema.GroupVersionResource, u *unstructured.Unstructured) {
time.Sleep(timeUntilDelete)
err := baseFakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName())
assert.NoError(t, err)
assert.NoError(t, baseFakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName()))
}(gvr, u)
}
}
@ -971,10 +958,10 @@ func TestStatusWaitMixedResources(t *testing.T) {
for _, expectedErr := range tt.expectErrs {
require.ErrorContains(t, err, expectedErr.Error())
}
return
} else {
require.NoError(t, err)
assert.False(t, restrictedConfig.clusterScopedListAttempted)
}
require.NoError(t, err)
assert.False(t, restrictedConfig.clusterScopedListAttempted)
})
}
}
@ -1067,8 +1054,7 @@ func TestStatusWaitWithCustomReaders(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := statusWaiter.Wait(resourceList, time.Second*3)
@ -1077,9 +1063,9 @@ func TestStatusWaitWithCustomReaders(t *testing.T) {
for _, expectedErrStr := range tt.expectErrStrs {
require.ErrorContains(t, err, expectedErrStr)
}
return
} else {
assert.NoError(t, err)
}
assert.NoError(t, err)
})
}
}
@ -1139,16 +1125,15 @@ func TestStatusWaitWithJobsAndCustomReaders(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := statusWaiter.WaitWithJobs(resourceList, time.Second*3)
if tt.expectErrs != nil {
assert.EqualError(t, err, errors.Join(tt.expectErrs...).Error())
return
} else {
assert.NoError(t, err)
}
assert.NoError(t, err)
})
}
}
@ -1238,8 +1223,7 @@ func TestStatusWaitWithFailedResources(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := tt.testFunc(&sw, resourceList, time.Second*3)
@ -1248,9 +1232,9 @@ func TestStatusWaitWithFailedResources(t *testing.T) {
for _, expectedErrStr := range tt.expectErrStrs {
require.ErrorContains(t, err, expectedErrStr)
}
return
} else {
assert.NoError(t, err)
}
assert.NoError(t, err)
})
}
}
@ -1343,14 +1327,12 @@ func TestMethodSpecificContextCancellation(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := sw.WatchUntilReady(resourceList, time.Second*3)
// Should fail due to cancelled method context
assert.ErrorContains(t, err, "context canceled")
assert.ErrorContains(t, sw.WatchUntilReady(resourceList, time.Second*3), "context canceled")
})
t.Run("Wait uses method-specific context", func(t *testing.T) {
@ -1376,14 +1358,12 @@ func TestMethodSpecificContextCancellation(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := sw.Wait(resourceList, time.Second*3)
// Should fail due to cancelled method context
assert.ErrorContains(t, err, "context canceled")
assert.ErrorContains(t, sw.Wait(resourceList, time.Second*3), "context canceled")
})
t.Run("WaitWithJobs uses method-specific context", func(t *testing.T) {
@ -1409,14 +1389,12 @@ func TestMethodSpecificContextCancellation(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := sw.WaitWithJobs(resourceList, time.Second*3)
// Should fail due to cancelled method context
assert.ErrorContains(t, err, "context canceled")
assert.ErrorContains(t, sw.WaitWithJobs(resourceList, time.Second*3), "context canceled")
})
t.Run("WaitForDelete uses method-specific context", func(t *testing.T) {
@ -1442,14 +1420,12 @@ func TestMethodSpecificContextCancellation(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := sw.WaitForDelete(resourceList, time.Second*3)
// Should fail due to cancelled method context
assert.ErrorContains(t, err, "context canceled")
assert.ErrorContains(t, sw.WaitForDelete(resourceList, time.Second*3), "context canceled")
})
}
@ -1479,14 +1455,12 @@ func TestMethodContextFallbackToGeneralContext(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := sw.WatchUntilReady(resourceList, time.Second*3)
// Should fail due to cancelled general context
assert.ErrorContains(t, err, "context canceled")
assert.ErrorContains(t, sw.WatchUntilReady(resourceList, time.Second*3), "context canceled")
})
t.Run("Wait falls back to general context when method context is nil", func(t *testing.T) {
@ -1512,14 +1486,12 @@ func TestMethodContextFallbackToGeneralContext(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := sw.Wait(resourceList, time.Second*3)
// Should fail due to cancelled general context
assert.ErrorContains(t, err, "context canceled")
assert.ErrorContains(t, sw.Wait(resourceList, time.Second*3), "context canceled")
})
t.Run("WaitWithJobs falls back to general context when method context is nil", func(t *testing.T) {
@ -1545,14 +1517,12 @@ func TestMethodContextFallbackToGeneralContext(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := sw.WaitWithJobs(resourceList, time.Second*3)
// Should fail due to cancelled general context
assert.ErrorContains(t, err, "context canceled")
assert.ErrorContains(t, sw.WaitWithJobs(resourceList, time.Second*3), "context canceled")
})
t.Run("WaitForDelete falls back to general context when method context is nil", func(t *testing.T) {
@ -1578,14 +1548,12 @@ func TestMethodContextFallbackToGeneralContext(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := sw.WaitForDelete(resourceList, time.Second*3)
// Should fail due to cancelled general context
assert.ErrorContains(t, err, "context canceled")
assert.ErrorContains(t, sw.WaitForDelete(resourceList, time.Second*3), "context canceled")
})
}
@ -1615,14 +1583,12 @@ func TestMethodContextOverridesGeneralContext(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := sw.WatchUntilReady(resourceList, time.Second*3)
// Should succeed because method context is used and it's not cancelled
assert.NoError(t, err)
assert.NoError(t, sw.WatchUntilReady(resourceList, time.Second*3))
})
t.Run("method-specific context overrides general context for Wait", func(t *testing.T) {
@ -1648,14 +1614,12 @@ func TestMethodContextOverridesGeneralContext(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := sw.Wait(resourceList, time.Second*3)
// Should succeed because method context is used and it's not cancelled
assert.NoError(t, err)
assert.NoError(t, sw.Wait(resourceList, time.Second*3))
})
t.Run("method-specific context overrides general context for WaitWithJobs", func(t *testing.T) {
@ -1681,14 +1645,12 @@ func TestMethodContextOverridesGeneralContext(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := sw.WaitWithJobs(resourceList, time.Second*3)
// Should succeed because method context is used and it's not cancelled
assert.NoError(t, err)
assert.NoError(t, sw.WaitWithJobs(resourceList, time.Second*3))
})
t.Run("method-specific context overrides general context for WaitForDelete", func(t *testing.T) {
@ -1717,9 +1679,8 @@ func TestMethodContextOverridesGeneralContext(t *testing.T) {
// immediately cancelled and the call would return a context error.
objs := getRuntimeObjFromManifests(t, []string{podCurrentManifest})
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := sw.WaitForDelete(resourceList, time.Second)
// Should succeed because method context is used and it's not cancelled
assert.NoError(t, err)
assert.NoError(t, sw.WaitForDelete(resourceList, time.Second))
})
}
@ -1801,8 +1762,7 @@ func TestWatchUntilReadyWithCustomReaders(t *testing.T) {
for _, obj := range objs {
u := obj.(*unstructured.Unstructured)
gvr := getGVR(t, fakeMapper, u)
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
require.NoError(t, err)
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
}
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
err := statusWaiter.WatchUntilReady(resourceList, time.Second*3)
@ -1811,9 +1771,9 @@ func TestWatchUntilReadyWithCustomReaders(t *testing.T) {
for _, expectedErrStr := range tt.expectErrStrs {
require.ErrorContains(t, err, expectedErrStr)
}
return
} else {
assert.NoError(t, err)
}
assert.NoError(t, err)
})
}
}

@ -16,10 +16,11 @@ package driver
import (
"encoding/base64"
"encoding/json"
"errors"
"reflect"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
v1 "k8s.io/api/core/v1"
"helm.sh/helm/v4/pkg/release"
@ -29,9 +30,7 @@ import (
func TestConfigMapName(t *testing.T) {
c := newTestFixtureCfgMaps(t)
if c.Name() != ConfigMapsDriverName {
t.Errorf("Expected name to be %q, got %q", ConfigMapsDriverName, c.Name())
}
assert.Equal(t, ConfigMapsDriverName, c.Name(), "Expected name to be %q, got %q", ConfigMapsDriverName, c.Name())
}
func TestConfigMapGet(t *testing.T) {
@ -45,13 +44,9 @@ func TestConfigMapGet(t *testing.T) {
// get release with key
got, err := cfgmaps.Get(key)
if err != nil {
t.Fatalf("Failed to get release: %s", err)
}
require.NoError(t, err, "Failed to get release")
// compare fetched release with original
if !reflect.DeepEqual(rel, got) {
t.Errorf("Expected {%v}, got {%v}", rel, got)
}
assert.Truef(t, reflect.DeepEqual(rel, got), "Expected {%v}, got {%v}", rel, got)
}
func TestUncompressedConfigMapGet(t *testing.T) {
@ -63,13 +58,9 @@ func TestUncompressedConfigMapGet(t *testing.T) {
// Create a test fixture which contains an uncompressed release
cfgmap, err := newConfigMapsObject(key, rel, nil)
if err != nil {
t.Fatalf("Failed to create configmap: %s", err)
}
require.NoError(t, err, "Failed to create configmap")
b, err := json.Marshal(rel)
if err != nil {
t.Fatalf("Failed to marshal release: %s", err)
}
require.NoError(t, err, "Failed to marshal release")
cfgmap.Data["release"] = base64.StdEncoding.EncodeToString(b)
var mock MockConfigMapsInterface
mock.objects = map[string]*v1.ConfigMap{key: cfgmap}
@ -77,13 +68,9 @@ func TestUncompressedConfigMapGet(t *testing.T) {
// get release with key
got, err := cfgmaps.Get(key)
if err != nil {
t.Fatalf("Failed to get release: %s", err)
}
require.NoError(t, err, "Failed to get release")
// compare fetched release with original
if !reflect.DeepEqual(rel, got) {
t.Errorf("Expected {%v}, got {%v}", rel, got)
}
assert.Truef(t, reflect.DeepEqual(rel, got), "Expected {%v}, got {%v}", rel, got)
}
func convertReleaserToV1(t *testing.T, rel release.Releaser) *rspb.Release {
@ -117,12 +104,8 @@ func TestConfigMapList(t *testing.T) {
return rls.Info.Status == common.StatusUninstalled
})
// check
if err != nil {
t.Errorf("Failed to list deleted: %s", err)
}
if len(del) != 2 {
t.Errorf("Expected 2 deleted, got %d:\n%v\n", len(del), del)
}
require.NoError(t, err, "Failed to list deleted")
assert.Len(t, del, 2, "Expected 2 deleted, got %d:\n%v\n", len(del), del)
// list all deployed releases
dpl, err := cfgmaps.List(func(rel release.Releaser) bool {
@ -130,12 +113,8 @@ func TestConfigMapList(t *testing.T) {
return rls.Info.Status == common.StatusDeployed
})
// check
if err != nil {
t.Errorf("Failed to list deployed: %s", err)
}
if len(dpl) != 2 {
t.Errorf("Expected 2 deployed, got %d", len(dpl))
}
require.NoError(t, err, "Failed to list deployed")
assert.Len(t, dpl, 2, "Expected 2 deployed, got %d", len(dpl))
// list all superseded releases
ssd, err := cfgmaps.List(func(rel release.Releaser) bool {
@ -143,22 +122,14 @@ func TestConfigMapList(t *testing.T) {
return rls.Info.Status == common.StatusSuperseded
})
// check
if err != nil {
t.Errorf("Failed to list superseded: %s", err)
}
if len(ssd) != 2 {
t.Errorf("Expected 2 superseded, got %d", len(ssd))
}
require.NoError(t, err, "Failed to list superseded")
assert.Len(t, ssd, 2, "Expected 2 superseded, got %d", len(ssd))
// Check if release having both system and custom labels, this is needed to ensure that selector filtering would work.
rls := convertReleaserToV1(t, ssd[0])
_, ok := rls.Labels["name"]
if !ok {
t.Fatalf("Expected 'name' label in results, actual %v", rls.Labels)
}
require.True(t, ok, "Expected 'name' label in results, actual %v", rls.Labels)
_, ok = rls.Labels["key1"]
if !ok {
t.Fatalf("Expected 'key1' label in results, actual %v", rls.Labels)
}
require.True(t, ok, "Expected 'key1' label in results, actual %v", rls.Labels)
}
func TestConfigMapQuery(t *testing.T) {
@ -172,17 +143,11 @@ func TestConfigMapQuery(t *testing.T) {
}...)
rls, err := cfgmaps.Query(map[string]string{"status": "deployed"})
if err != nil {
t.Errorf("Failed to query: %s", err)
}
if len(rls) != 2 {
t.Errorf("Expected 2 results, got %d", len(rls))
}
require.NoError(t, err, "Failed to query")
assert.Len(t, rls, 2, "Expected 2 results, got %d", len(rls))
_, err = cfgmaps.Query(map[string]string{"name": "notExist"})
if !errors.Is(err, ErrReleaseNotFound) {
t.Errorf("Expected {%v}, got {%v}", ErrReleaseNotFound, err)
}
assert.ErrorIs(t, err, ErrReleaseNotFound)
}
func TestConfigMapCreate(t *testing.T) {
@ -195,20 +160,14 @@ func TestConfigMapCreate(t *testing.T) {
rel := releaseStub(name, vers, namespace, common.StatusDeployed)
// store the release in a configmap
if err := cfgmaps.Create(key, rel); err != nil {
t.Fatalf("Failed to create release with key %q: %s", key, err)
}
require.NoErrorf(t, cfgmaps.Create(key, rel), "Failed to create release with key %q", key)
// get the release back
got, err := cfgmaps.Get(key)
if err != nil {
t.Fatalf("Failed to get release with key %q: %s", key, err)
}
require.NoError(t, err, "Failed to get release with key %q", key)
// compare created release with original
if !reflect.DeepEqual(rel, got) {
t.Errorf("Expected {%v}, got {%v}", rel, got)
}
assert.Truef(t, reflect.DeepEqual(rel, got), "Expected {%v}, got {%v}", rel, got)
}
func TestConfigMapUpdate(t *testing.T) {
@ -224,21 +183,15 @@ func TestConfigMapUpdate(t *testing.T) {
rel.Info.Status = common.StatusSuperseded
// perform the update
if err := cfgmaps.Update(key, rel); err != nil {
t.Fatalf("Failed to update release: %s", err)
}
require.NoErrorf(t, cfgmaps.Update(key, rel), "Failed to update release")
// fetch the updated release
goti, err := cfgmaps.Get(key)
if err != nil {
t.Fatalf("Failed to get release with key %q: %s", key, err)
}
require.NoError(t, err, "Failed to get release with key %q", key)
got := convertReleaserToV1(t, goti)
// check release has actually been updated by comparing modified fields
if rel.Info.Status != got.Info.Status {
t.Errorf("Expected status %s, got status %s", rel.Info.Status.String(), got.Info.Status.String())
}
assert.Equal(t, got.Info.Status, rel.Info.Status, "Expected status %s, got status %s", rel.Info.Status.String(), got.Info.Status.String())
}
func TestConfigMapDelete(t *testing.T) {
@ -252,20 +205,12 @@ func TestConfigMapDelete(t *testing.T) {
// perform the delete on a non-existent release
_, err := cfgmaps.Delete("nonexistent")
if !errors.Is(err, ErrReleaseNotFound) {
t.Fatalf("Expected ErrReleaseNotFound: got {%v}", err)
}
require.ErrorIs(t, err, ErrReleaseNotFound)
// perform the delete
rls, err := cfgmaps.Delete(key)
if err != nil {
t.Fatalf("Failed to delete release with key %q: %s", key, err)
}
if !reflect.DeepEqual(rel, rls) {
t.Errorf("Expected {%v}, got {%v}", rel, rls)
}
require.NoError(t, err, "Failed to delete release with key %q", key)
assert.Truef(t, reflect.DeepEqual(rel, rls), "Expected {%v}, got {%v}", rel, rls)
_, err = cfgmaps.Get(key)
if !errors.Is(err, ErrReleaseNotFound) {
t.Errorf("Expected {%v}, got {%v}", ErrReleaseNotFound, err)
}
assert.ErrorIs(t, err, ErrReleaseNotFound)
}

Loading…
Cancel
Save