chore(pkg): refactor: finer tests conversions to testify part 3

refactor: finer tests conversions to testify in pkg/cmd
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
pull/32467/head
Matthieu MOREL 2 months ago
parent 39231d01e1
commit 9a2be11e6f

@ -420,9 +420,7 @@ func TestInstallRelease_WithChartAndDependencyAllNotes(t *testing.T) {
req.NoError(err) req.NoError(err)
is.Equal("with-notes", rel.Name) is.Equal("with-notes", rel.Name)
// test run can return as either 'parent\nchild' or 'child\nparent' // test run can return as either 'parent\nchild' or 'child\nparent'
if !strings.Contains(rel.Info.Notes, "parent") && !strings.Contains(rel.Info.Notes, "child") { req.True(strings.Contains(rel.Info.Notes, "parent") || strings.Contains(rel.Info.Notes, "child"), "Expected 'parent\nchild' or 'child\nparent', got '%s'", rel.Info.Notes)
t.Fatalf("Expected 'parent\nchild' or 'child\nparent', got '%s'", rel.Info.Notes)
}
is.Equal("Install complete", rel.Info.Description) is.Equal("Install complete", rel.Info.Description)
} }
@ -1096,7 +1094,7 @@ func TestInstallCRDs(t *testing.T) {
mockChart := buildChart(withFile(mockFile)) mockChart := buildChart(withFile(mockFile))
crdsToInstall := mockChart.CRDObjects() crdsToInstall := mockChart.CRDObjects()
assert.Len(t, crdsToInstall, 1) require.Len(t, crdsToInstall, 1)
assert.Equal(t, crdsToInstall[0].File.Data, mockFile.Data) assert.Equal(t, crdsToInstall[0].File.Data, mockFile.Data)
require.NoError(t, instAction.installCRDs(crdsToInstall)) require.NoError(t, instAction.installCRDs(crdsToInstall))
} }

@ -106,10 +106,8 @@ func TestNonExistentChart(t *testing.T) {
testLint := NewLint() testLint := NewLint()
result := testLint.Run(testCharts, values) result := testLint.Run(testCharts, values)
assert.Len(t, result.Errors, 1, "expected one error, but got", len(result.Errors)) require.Len(t, result.Errors, 1, "expected one error, but got", len(result.Errors))
assert.EqualError(t, result.Errors[0], expectedError)
actual := result.Errors[0].Error()
assert.EqualError(t, result.Errors[0], expectedError, "expected '%s', but got '%s'", expectedError, actual)
}) })
t.Run("should error out for corrupted tgz chart", func(t *testing.T) { t.Run("should error out for corrupted tgz chart", func(t *testing.T) {
@ -118,10 +116,8 @@ func TestNonExistentChart(t *testing.T) {
testLint := NewLint() testLint := NewLint()
result := testLint.Run(testCharts, values) result := testLint.Run(testCharts, values)
assert.Len(t, result.Errors, 1, "expected one error, but got", len(result.Errors)) require.Len(t, result.Errors, 1, "expected one error, but got", len(result.Errors))
assert.EqualError(t, result.Errors[0], expectedEOFError)
actual := result.Errors[0].Error()
assert.EqualError(t, result.Errors[0], expectedEOFError, "expected '%s', but got '%s'", expectedEOFError, actual)
}) })
} }

@ -132,7 +132,7 @@ func TestRequireAdoption(t *testing.T) {
// Verify that a resource that lacks labels/annotations can be adopted // Verify that a resource that lacks labels/annotations can be adopted
found, err := requireAdoption(resources) found, err := requireAdoption(resources)
require.NoError(t, err) require.NoError(t, err)
assert.Len(t, found, 1) require.Len(t, found, 1)
assert.Equal(t, found[0], existing) assert.Equal(t, found[0], existing)
assert.NotSame(t, found[0], existing) assert.NotSame(t, found[0], existing)
} }
@ -157,7 +157,7 @@ func TestExistingResourceConflict(t *testing.T) {
// Verify only existing resources are returned // Verify only existing resources are returned
found, err := existingResourceConflict(resources, releaseName, releaseNamespace) found, err := existingResourceConflict(resources, releaseName, releaseNamespace)
require.NoError(t, err) require.NoError(t, err)
assert.Len(t, found, 1) require.Len(t, found, 1)
assert.Equal(t, found[0], existing) assert.Equal(t, found[0], existing)
assert.NotSame(t, found[0], existing) assert.NotSame(t, found[0], existing)
@ -242,8 +242,8 @@ func TestVerifyOwnershipBeforeDelete(t *testing.T) {
ownedList, unownedList, _, err := verifyOwnershipBeforeDelete(resources, releaseName, releaseNamespace) ownedList, unownedList, _, err := verifyOwnershipBeforeDelete(resources, releaseName, releaseNamespace)
require.NoError(t, err) require.NoError(t, err)
assert.Len(t, ownedList, 1) require.Len(t, ownedList, 1)
assert.Len(t, unownedList, 1) require.Len(t, unownedList, 1)
assert.Equal(t, "owned", ownedList[0].Name) assert.Equal(t, "owned", ownedList[0].Name)
assert.Equal(t, "unowned", unownedList[0].Name) assert.Equal(t, "unowned", unownedList[0].Name)
}) })
@ -290,8 +290,8 @@ func TestVerifyOwnershipBeforeDelete(t *testing.T) {
ownedList, unownedList, _, err := verifyOwnershipBeforeDelete(resources, releaseName, releaseNamespace) ownedList, unownedList, _, err := verifyOwnershipBeforeDelete(resources, releaseName, releaseNamespace)
require.NoError(t, err) require.NoError(t, err)
assert.Len(t, ownedList, 1) require.Len(t, ownedList, 1)
assert.Len(t, unownedList, 1) require.Len(t, unownedList, 1)
assert.Equal(t, "owned", ownedList[0].Name) assert.Equal(t, "owned", ownedList[0].Name)
assert.Equal(t, "unowned", unownedList[0].Name) assert.Equal(t, "unowned", unownedList[0].Name)
}) })

@ -372,8 +372,7 @@ func TestMergeValues(t *testing.T) {
assert.True(t, ok, "Expected nested boat key to be present but it was removed") assert.True(t, ok, "Expected nested boat key to be present but it was removed")
subchart := v["pequod"].(map[string]any)["ahab"].(map[string]any) subchart := v["pequod"].(map[string]any)["ahab"].(map[string]any)
_, ok = subchart["boat"] assert.Contains(t, subchart, "boat", "Expected subchart boat key to be present but it was removed")
assert.True(t, ok, "Expected subchart boat key to be present but it was removed")
_, ok = subchart["nested"].(map[string]any)["bar"] _, ok = subchart["nested"].(map[string]any)["bar"]
assert.True(t, ok, "Expected subchart nested bar key to be present but it was removed") assert.True(t, ok, "Expected subchart nested bar key to be present but it was removed")
@ -526,8 +525,7 @@ func TestMergeTables(t *testing.T) {
// This is one test that is different from CoalesceTables. Because hole // This is one test that is different from CoalesceTables. Because hole
// is a nil value and it's not removed it's still present. // is a nil value and it's not removed it's still present.
_, ok = dst["hole"] assert.Contains(t, dst, "hole", "The hole no longer exists.")
assert.True(t, ok, "The hole no longer exists.")
dst2 := map[string]any{ dst2 := map[string]any{
"name": "Ishmael", "name": "Ishmael",
@ -559,8 +557,7 @@ func TestMergeTables(t *testing.T) {
det2, ok := dst2["details"].(map[string]any) det2, ok := dst2["details"].(map[string]any)
require.Truef(t, ok, "Details is the wrong type: %v", dst2["details"]) require.Truef(t, ok, "Details is the wrong type: %v", dst2["details"])
_, ok = det2["friends"] assert.Contains(t, det2, "friends", "Could not find your friends. Maybe you don't have any. :-(")
assert.True(t, ok, "Could not find your friends. Maybe you don't have any. :-(")
assert.Equal(t, "pequod", dst2["boat"].(string), "Expected boat string, got %v", dst2["boat"]) assert.Equal(t, "pequod", dst2["boat"].(string), "Expected boat string, got %v", dst2["boat"])
assert.Equal(t, "black", dst2["hole"].(string), "Expected hole string, got %v", dst2["hole"]) assert.Equal(t, "black", dst2["hole"].(string), "Expected hole string, got %v", dst2["hole"])
assert.Nil(t, dst2["nilval"], "Expected nilvalue to have nil value but it does not") assert.Nil(t, dst2["nilval"], "Expected nilvalue to have nil value but it does not")
@ -659,8 +656,7 @@ func TestCoalesceValuesEmptyMapWithNils(t *testing.T) {
is.Equal("bar", data["foo"]) is.Equal("bar", data["foo"])
// "baz" should be preserved with nil value since it wasn't in chart defaults // "baz" should be preserved with nil value since it wasn't in chart defaults
_, ok = data["baz"] is.Contains(data, "baz", "Expected data.baz key to be present but it was removed")
is.True(ok, "Expected data.baz key to be present but it was removed")
is.Nil(data["baz"], "Expected data.baz key to be nil but it is not") is.Nil(data["baz"], "Expected data.baz key to be nil but it is not")
} }

@ -195,7 +195,6 @@ func TestChartfile(t *testing.T) {
expectedNumberOfErrorMessages := 7 expectedNumberOfErrorMessages := 7
require.Lenf(t, msgs, expectedNumberOfErrorMessages, "Expected %d errors, got %d", expectedNumberOfErrorMessages, len(msgs)) require.Lenf(t, msgs, expectedNumberOfErrorMessages, "Expected %d errors, got %d", expectedNumberOfErrorMessages, len(msgs))
require.ErrorContains(t, msgs[0].Err, "name is required", "Unexpected message 0: %s", msgs[0].Err) require.ErrorContains(t, msgs[0].Err, "name is required", "Unexpected message 0: %s", msgs[0].Err)
require.ErrorContains(t, msgs[1].Err, "apiVersion is required. The value must be either \"v1\" or \"v2\"", "Unexpected message 1: %s", msgs[1].Err) require.ErrorContains(t, msgs[1].Err, "apiVersion is required. The value must be either \"v1\" or \"v2\"", "Unexpected message 1: %s", msgs[1].Err)
require.ErrorContains(t, msgs[2].Err, "version '0.0.0.0' is not a valid SemVer", "Unexpected message 2: %s", msgs[2].Err) require.ErrorContains(t, msgs[2].Err, "version '0.0.0.0' is not a valid SemVer", "Unexpected message 2: %s", msgs[2].Err)
@ -211,11 +210,7 @@ func TestChartfile(t *testing.T) {
msgs := linter.Messages msgs := linter.Messages
expectedNumberOfErrorMessages := 4 expectedNumberOfErrorMessages := 4
if len(msgs) != expectedNumberOfErrorMessages { require.Len(t, msgs, expectedNumberOfErrorMessages, "Expected %d errors, got %d", expectedNumberOfErrorMessages, len(msgs))
t.Errorf("Expected %d errors, got %d", expectedNumberOfErrorMessages, len(msgs))
return
}
require.ErrorContains(t, msgs[0].Err, "version should be of type string", "Unexpected message 0: %s", msgs[0].Err) require.ErrorContains(t, msgs[0].Err, "version should be of type string", "Unexpected message 0: %s", msgs[0].Err)
require.ErrorContains(t, msgs[1].Err, "version '7.2445e+06' is not a valid SemVer", "Unexpected message 1: %s", msgs[1].Err) require.ErrorContains(t, msgs[1].Err, "version '7.2445e+06' is not a valid SemVer", "Unexpected message 1: %s", msgs[1].Err)
require.ErrorContains(t, msgs[2].Err, "appVersion should be of type string", "Unexpected message 2: %s", msgs[2].Err) require.ErrorContains(t, msgs[2].Err, "appVersion should be of type string", "Unexpected message 2: %s", msgs[2].Err)

@ -22,6 +22,7 @@ import (
"testing" "testing"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"helm.sh/helm/v4/pkg/chart/v2/lint/support" "helm.sh/helm/v4/pkg/chart/v2/lint/support"
) )
@ -33,7 +34,7 @@ func TestInvalidCrdsDir(t *testing.T) {
Crds(&linter) Crds(&linter)
res := linter.Messages res := linter.Messages
assert.Len(t, res, 1) require.Len(t, res, 1)
assert.ErrorContains(t, res[0].Err, "not a directory") assert.ErrorContains(t, res[0].Err, "not a directory")
} }

@ -140,8 +140,7 @@ func TestDependencies(t *testing.T) {
linter := support.Linter{ChartDir: filepath.Join(tmp, c.Metadata.Name)} linter := support.Linter{ChartDir: filepath.Join(tmp, c.Metadata.Name)}
Dependencies(&linter) Dependencies(&linter)
if l := len(linter.Messages); l != 2 { if !assert.Len(t, linter.Messages, 2, "expected 2 linter errors for bad chart dependencies") {
t.Errorf("expected 2 linter errors for bad chart dependencies. Got %d.", l)
for i, msg := range linter.Messages { for i, msg := range linter.Messages {
t.Logf("Message: %d, Error: %#v", i, msg) t.Logf("Message: %d, Error: %#v", i, msg)
} }

@ -58,11 +58,11 @@ func TestRunLinterRule(t *testing.T) {
func TestMessage(t *testing.T) { func TestMessage(t *testing.T) {
m := Message{ErrorSev, "Chart.yaml", errors.New("Foo")} m := Message{ErrorSev, "Chart.yaml", errors.New("Foo")}
require.EqualErrorf(t, m, "[ERROR] Chart.yaml: Foo", "Unexpected output: %s", m.Error()) require.EqualError(t, m, "[ERROR] Chart.yaml: Foo")
m = Message{WarningSev, "templates/", errors.New("Bar")} m = Message{WarningSev, "templates/", errors.New("Bar")}
require.EqualErrorf(t, m, "[WARNING] templates/: Bar", "Unexpected output: %s", m.Error()) require.EqualError(t, m, "[WARNING] templates/: Bar")
m = Message{InfoSev, "templates/rc.yaml", errors.New("FooBar")} m = Message{InfoSev, "templates/rc.yaml", errors.New("FooBar")}
assert.EqualErrorf(t, m, "[INFO] templates/rc.yaml: FooBar", "Unexpected output: %s", m.Error()) assert.EqualError(t, m, "[INFO] templates/rc.yaml: FooBar")
} }

@ -49,12 +49,8 @@ func verifyChartfile(t *testing.T, f *chart.Metadata, name string) {
assert.Equal(t, "https://example.com/64x64.png", f.Icon, "Unexpected icon: %q", f.Icon) assert.Equal(t, "https://example.com/64x64.png", f.Icon, "Unexpected icon: %q", f.Icon)
assert.Len(t, f.Keywords, 3, "Unexpected keywords") assert.Len(t, f.Keywords, 3, "Unexpected keywords")
require.Len(t, f.Annotations, 2, "Unexpected annotations") require.Len(t, f.Annotations, 2, "Unexpected annotations")
assert.Equal(t, "extravalue", f.Annotations["extrakey"])
want, got := "extravalue", f.Annotations["extrakey"] assert.Equal(t, "anothervalue", f.Annotations["anotherkey"])
assert.Equalf(t, want, got, "Want %q, but got %q", want, got)
want, got = "anothervalue", f.Annotations["anotherkey"]
assert.Equalf(t, want, got, "Want %q, but got %q", want, got)
kk := []string{"frobnitz", "sprocket", "dodad"} kk := []string{"frobnitz", "sprocket", "dodad"}
for i, k := range f.Keywords { for i, k := range f.Keywords {

@ -138,8 +138,11 @@ func TestValidateChartName(t *testing.T) {
"abcdefghijklmnopqrstuvwxyz-_." + "abcdefghijklmnopqrstuvwxyz-_." +
"ABCDEFGHIJKLMNOPQRSTUVWXYZ-_.": false, "ABCDEFGHIJKLMNOPQRSTUVWXYZ-_.": false,
} { } {
if err := validateChartName(name); (err != nil) == shouldPass { err := validateChartName(name)
t.Errorf("test for %q failed", name) if shouldPass {
assert.NoError(t, err)
} else {
assert.Error(t, err)
} }
} }
} }

@ -43,7 +43,7 @@ func TestLoadDependency(t *testing.T) {
} }
check := func(deps []*chart.Dependency) { check := func(deps []*chart.Dependency) {
assert.Len(t, deps, 2, "expected 2 dependencies, got %d", len(deps)) require.Len(t, deps, 2, "expected 2 dependencies, got %d", len(deps))
for i, tt := range tests { for i, tt := range tests {
assert.Equal(t, tt.Name, deps[i].Name, "expected dependency named %q, got %q", tt.Name, deps[i].Name) assert.Equal(t, tt.Name, deps[i].Name, "expected dependency named %q, got %q", tt.Name, deps[i].Name)
assert.Equal(t, tt.Version, deps[i].Version, "expected dependency named %q to have version %q, got %q", tt.Name, tt.Version, deps[i].Version) assert.Equal(t, tt.Version, deps[i].Version, "expected dependency named %q to have version %q, got %q", tt.Name, tt.Version, deps[i].Version)

@ -18,9 +18,9 @@ package cmd
import ( import (
"fmt" "fmt"
"strings"
"testing" "testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
chart "helm.sh/helm/v4/pkg/chart/v2" chart "helm.sh/helm/v4/pkg/chart/v2"
@ -47,13 +47,10 @@ func checkFileCompletion(t *testing.T, cmdName string, shouldBePerformed bool) {
testcmd := fmt.Sprintf("__complete %s ''", cmdName) testcmd := fmt.Sprintf("__complete %s ''", cmdName)
_, out, err := executeActionCommandC(storage, testcmd) _, out, err := executeActionCommandC(storage, testcmd)
require.NoError(t, err) require.NoError(t, err)
if !strings.Contains(out, "ShellCompDirectiveNoFileComp") != shouldBePerformed { if shouldBePerformed {
if shouldBePerformed { assert.NotContains(t, out, "ShellCompDirectiveNoFileComp", "Unexpected directive ShellCompDirectiveNoFileComp when completing '%s'", cmdName)
t.Errorf("Unexpected directive ShellCompDirectiveNoFileComp when completing '%s'", cmdName) } else {
} else { assert.Contains(t, out, "ShellCompDirectiveNoFileComp", "Did not receive directive ShellCompDirectiveNoFileComp when completing '%s'", cmdName)
t.Errorf("Did not receive directive ShellCompDirectiveNoFileComp when completing '%s'", cmdName)
}
t.Log(out)
} }
} }

@ -48,10 +48,10 @@ func TestRepoIndexCmd(t *testing.T) {
index, err := repo.LoadIndexFile(destIndex) index, err := repo.LoadIndexFile(destIndex)
require.NoError(t, err) require.NoError(t, err)
assert.Len(t, index.Entries, 1, "expected 1 entry, got %d: %#v", len(index.Entries), index.Entries) require.Len(t, index.Entries, 1, "expected 1 entry, got %d: %#v", len(index.Entries), index.Entries)
vs := index.Entries["compressedchart"] vs := index.Entries["compressedchart"]
assert.Len(t, vs, 2, "expected 2 versions, got %d: %#v", len(vs), vs) require.Len(t, vs, 2, "expected 2 versions")
expectedVersion := "0.2.0" expectedVersion := "0.2.0"
assert.Equal(t, expectedVersion, vs[0].Version, "expected %q, got %q", expectedVersion, vs[0].Version) assert.Equal(t, expectedVersion, vs[0].Version, "expected %q, got %q", expectedVersion, vs[0].Version)

@ -174,10 +174,8 @@ func TestUpdateChartsFailWithError(t *testing.T) {
b := bytes.NewBuffer(nil) b := bytes.NewBuffer(nil)
err = updateCharts([]*repo.ChartRepository{r1, r2}, b) err = updateCharts([]*repo.ChartRepository{r1, r2}, b)
require.Error(t, err, "Repo update should return error because update of repository fails and 'fail-on-repo-update-fail' flag set") require.Error(t, err, "Repo update should return error because update of repository fails and 'fail-on-repo-update-fail' flag set")
var expectedErr = "failed to update the following repositories" require.ErrorContains(t, err, "failed to update the following repositories")
var receivedErr = err.Error() require.ErrorContains(t, err, invalidURL)
require.ErrorContains(t, err, expectedErr, "Expected error (%s) but got (%s) instead", expectedErr, receivedErr)
require.ErrorContains(t, err, invalidURL, "Expected invalid URL (%s) in error message but got (%s) instead", invalidURL, receivedErr)
got := b.String() got := b.String()
assert.Contains(t, got, "Unable to get an update", "Repo should have failed update but instead got: %q", got) assert.Contains(t, got, "Unable to get an update", "Repo should have failed update but instead got: %q", got)

@ -18,7 +18,6 @@ package cmd
import ( import (
"fmt" "fmt"
"reflect"
"testing" "testing"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@ -161,5 +160,5 @@ func TestRollbackWithLabels(t *testing.T) {
updatedRel, err := releaserToV1Release(updatedReli) updatedRel, err := releaserToV1Release(updatedReli)
require.NoError(t, err) require.NoError(t, err)
assert.Truef(t, reflect.DeepEqual(updatedRel.Labels, labels1), "Expected {%v}, got {%v}", labels1, updatedRel.Labels) assert.Equalf(t, updatedRel.Labels, labels1, "Expected {%v}, got {%v}", labels1, updatedRel.Labels)
} }

@ -46,11 +46,7 @@ func TestSearchHubCmd(t *testing.T) {
storage := storageFixture() storage := storageFixture()
_, out, err := executeActionCommandC(storage, testcmd) _, out, err := executeActionCommandC(storage, testcmd)
require.NoError(t, err) require.NoError(t, err)
if out != expected { assert.Equal(t, expected, out, "expected and actual output did not match")
t.Error("expected and actual output did not match")
t.Log(out)
t.Log(expected)
}
} }
func TestSearchHubListRepoCmd(t *testing.T) { func TestSearchHubListRepoCmd(t *testing.T) {
@ -73,11 +69,7 @@ func TestSearchHubListRepoCmd(t *testing.T) {
storage := storageFixture() storage := storageFixture()
_, out, err := executeActionCommandC(storage, testcmd) _, out, err := executeActionCommandC(storage, testcmd)
require.NoError(t, err) require.NoError(t, err)
if out != expected { assert.Equal(t, expected, out, "expected and actual output did not match")
t.Error("expected and actual output did not match")
t.Log(out)
t.Log(expected)
}
} }
func TestSearchHubOutputCompletion(t *testing.T) { func TestSearchHubOutputCompletion(t *testing.T) {

@ -77,12 +77,10 @@ func TestShowPreReleaseChart(t *testing.T) {
contentTmp, contentTmp,
) )
_, _, err := executeActionCommand(cmd) _, _, err := executeActionCommand(cmd)
if err != nil { if tt.fail {
if tt.fail { assert.ErrorContains(t, err, tt.expectedErr, "%q expected error: %s, got: %s", tt.name, tt.expectedErr, err.Error())
assert.ErrorContains(t, err, tt.expectedErr, "%q expected error: %s, got: %s", tt.name, tt.expectedErr, err.Error()) } else {
return assert.NoError(t, err)
}
t.Errorf("%q reported error: %s", tt.name, err)
} }
}) })
} }

@ -99,10 +99,8 @@ func TestParallelDownloadTo(t *testing.T) {
// Verify the file has the expected size (should match the source file) // Verify the file has the expected size (should match the source file)
sourceFile := "testdata/local-subchart-0.1.0.tgz" sourceFile := "testdata/local-subchart-0.1.0.tgz"
sourceInfo, err := os.Stat(sourceFile) sourceInfo, err := os.Stat(sourceFile)
if err == nil && info.Size() != sourceInfo.Size() { require.NoError(t, err)
t.Errorf("Downloaded file size (%d bytes) doesn't match source file size (%d bytes)", assert.False(t, info.Size() != sourceInfo.Size(), "Downloaded file size doesn't match source file size")
info.Size(), sourceInfo.Size())
}
// Verify it's a valid tar.gz file by checking the magic bytes // Verify it's a valid tar.gz file by checking the magic bytes
file, err := os.Open(expectedFile) file, err := os.Open(expectedFile)
@ -110,10 +108,10 @@ func TestParallelDownloadTo(t *testing.T) {
defer file.Close() defer file.Close()
// gzip magic bytes are 0x1f 0x8b // gzip magic bytes are 0x1f 0x8b
magic := make([]byte, 2) magic := make([]byte, 2)
if n, err := file.Read(magic); err == nil && n == 2 { n, err := file.Read(magic)
if magic[0] != 0x1f || magic[1] != 0x8b { require.NoError(t, err)
t.Errorf("Downloaded file is not a valid gzip file (magic bytes: %x)", magic) if n == 2 {
} assert.False(t, magic[0] != 0x1f || magic[1] != 0x8b, "Downloaded file is not a valid gzip file (magic bytes: %x)", magic)
} }
} }

@ -16,6 +16,7 @@ limitations under the License.
package engine package engine
import ( import (
"strconv"
"testing" "testing"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@ -47,10 +48,10 @@ func TestNewFiles(t *testing.T) {
assert.Len(t, files, len(cases), "Expected len() = %d, got %d", len(cases), len(files)) assert.Len(t, files, len(cases), "Expected len() = %d, got %d", len(cases), len(files))
for i, f := range cases { for i, f := range cases {
got := string(files.GetBytes(f.path)) t.Run(strconv.Itoa(i), func(t *testing.T) {
assert.Equalf(t, got, f.data, "%d: expected %q, got %q", i, f.data, got) assert.Equal(t, f.data, string(files.GetBytes(f.path)))
got = files.Get(f.path) assert.Equal(t, f.data, files.Get(f.path))
assert.Equalf(t, got, f.data, "%d: expected %q, got %q", i, f.data, got) })
} }
} }

@ -38,7 +38,7 @@ func TestError(t *testing.T) {
os.Unsetenv(name) os.Unsetenv(name)
g := Gate(name) g := Gate(name)
assert.Equal(t, "this feature has been marked as experimental and is not enabled by default. Please set HELM_EXPERIMENTAL_FEATURE=1 in your environment to use this feature", g.Error().Error()) assert.EqualError(t, g.Error(), "this feature has been marked as experimental and is not enabled by default. Please set HELM_EXPERIMENTAL_FEATURE=1 in your environment to use this feature")
} }
func TestString(t *testing.T) { func TestString(t *testing.T) {

@ -122,9 +122,9 @@ func TestDownload(t *testing.T) {
const expectedUserAgent = "I am Groot" const expectedUserAgent = "I am Groot"
basicAuthSrv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { basicAuthSrv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
username, password, ok := r.BasicAuth() username, password, ok := r.BasicAuth()
if !ok || username != "username" || password != "password" { assert.True(t, ok, "Expected request to use basic auth")
t.Errorf("Expected request to use basic auth and for username == 'username' and password == 'password', got '%v', '%s', '%s'", ok, username, password) assert.Equal(t, "username", username)
} assert.Equal(t, "password", password)
assert.Equal(t, expectedUserAgent, r.UserAgent(), "Expected '%s', got '%s'", expectedUserAgent, r.UserAgent()) assert.Equal(t, expectedUserAgent, r.UserAgent(), "Expected '%s', got '%s'", expectedUserAgent, r.UserAgent())
fmt.Fprint(w, expect) fmt.Fprint(w, expect)
})) }))
@ -147,9 +147,9 @@ func TestDownload(t *testing.T) {
// test with Get URL differing from withURL // test with Get URL differing from withURL
crossAuthSrv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { crossAuthSrv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
username, password, ok := r.BasicAuth() username, password, ok := r.BasicAuth()
if ok || username == "username" || password == "password" { assert.False(t, ok)
t.Errorf("Expected request to not include but got '%v', '%s', '%s'", ok, username, password) assert.NotEqual(t, "username", username)
} assert.NotEqual(t, "password", password)
fmt.Fprint(w, expect) fmt.Fprint(w, expect)
})) }))
@ -176,9 +176,9 @@ func TestDownload(t *testing.T) {
// test with Get URL differing from withURL and should pass creds // test with Get URL differing from withURL and should pass creds
crossAuthSrv = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { crossAuthSrv = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
username, password, ok := r.BasicAuth() username, password, ok := r.BasicAuth()
if !ok || username != "username" || password != "password" { assert.True(t, ok, "Expected request to use basic auth")
t.Errorf("Expected request to use basic auth and for username == 'username' and password == 'password', got '%v', '%s', '%s'", ok, username, password) assert.Equal(t, "username", username)
} assert.Equal(t, "password", password)
fmt.Fprint(w, expect) fmt.Fprint(w, expect)
})) }))

@ -165,7 +165,11 @@ func Test_ReadyChecker_IsReady_Job(t *testing.T) {
require.NoError(t, err, "Failed to create Job") require.NoError(t, err, "Failed to create Job")
got, err := c.IsReady(tt.args.ctx, tt.args.resource) got, err := c.IsReady(tt.args.ctx, tt.args.resource)
assert.Equal(t, tt.wantErr, (err != nil), "IsReady() error = %v, wantErr %v", err, tt.wantErr) if tt.wantErr {
require.Error(t, err, "IsReady()")
} else {
require.NoError(t, err, "IsReady()")
}
assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want) assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want)
}) })
} }
@ -237,7 +241,11 @@ func Test_ReadyChecker_IsReady_Deployment(t *testing.T) {
require.NoError(t, err, "Failed to create ReplicaSet") require.NoError(t, err, "Failed to create ReplicaSet")
got, err := c.IsReady(tt.args.ctx, tt.args.resource) got, err := c.IsReady(tt.args.ctx, tt.args.resource)
assert.Equal(t, tt.wantErr, (err != nil), "IsReady() error = %v, wantErr %v", err, tt.wantErr) if tt.wantErr {
require.Error(t, err, "IsReady()")
} else {
require.NoError(t, err, "IsReady()")
}
assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want) assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want)
}) })
} }
@ -303,7 +311,11 @@ func Test_ReadyChecker_IsReady_PersistentVolumeClaim(t *testing.T) {
require.NoError(t, err, "Failed to create PersistentVolumeClaim") require.NoError(t, err, "Failed to create PersistentVolumeClaim")
got, err := c.IsReady(tt.args.ctx, tt.args.resource) got, err := c.IsReady(tt.args.ctx, tt.args.resource)
assert.Equal(t, tt.wantErr, (err != nil), "IsReady() error = %v, wantErr %v", err, tt.wantErr) if tt.wantErr {
require.Error(t, err, "IsReady()")
} else {
require.NoError(t, err, "IsReady()")
}
assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want) assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want)
}) })
} }
@ -369,7 +381,11 @@ func Test_ReadyChecker_IsReady_Service(t *testing.T) {
require.NoError(t, err, "Failed to create Service") require.NoError(t, err, "Failed to create Service")
got, err := c.IsReady(tt.args.ctx, tt.args.resource) got, err := c.IsReady(tt.args.ctx, tt.args.resource)
assert.Equal(t, tt.wantErr, (err != nil), "IsReady() error = %v, wantErr %v", err, tt.wantErr) if tt.wantErr {
require.Error(t, err, "IsReady()")
} else {
require.NoError(t, err, "IsReady()")
}
assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want) assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want)
}) })
} }
@ -435,7 +451,11 @@ func Test_ReadyChecker_IsReady_DaemonSet(t *testing.T) {
require.NoError(t, err, "Failed to create DaemonSet") require.NoError(t, err, "Failed to create DaemonSet")
got, err := c.IsReady(tt.args.ctx, tt.args.resource) got, err := c.IsReady(tt.args.ctx, tt.args.resource)
assert.Equal(t, tt.wantErr, (err != nil), "IsReady() error = %v, wantErr %v", err, tt.wantErr) if tt.wantErr {
require.Error(t, err, "IsReady()")
} else {
require.NoError(t, err, "IsReady()")
}
assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want) assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want)
}) })
} }
@ -501,7 +521,11 @@ func Test_ReadyChecker_IsReady_StatefulSet(t *testing.T) {
require.NoError(t, err, "Failed to create StatefulSet") require.NoError(t, err, "Failed to create StatefulSet")
got, err := c.IsReady(tt.args.ctx, tt.args.resource) got, err := c.IsReady(tt.args.ctx, tt.args.resource)
assert.Equal(t, tt.wantErr, (err != nil), "IsReady() error = %v, wantErr %v", err, tt.wantErr) if tt.wantErr {
require.Error(t, err, "IsReady()")
} else {
require.NoError(t, err, "IsReady()")
}
assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want) assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want)
}) })
} }
@ -582,7 +606,11 @@ func Test_ReadyChecker_IsReady_ReplicationController(t *testing.T) {
require.NoError(t, err, "Failed to create ReplicationController") require.NoError(t, err, "Failed to create ReplicationController")
got, err := c.IsReady(tt.args.ctx, tt.args.resource) got, err := c.IsReady(tt.args.ctx, tt.args.resource)
assert.Equal(t, tt.wantErr, (err != nil), "IsReady() error = %v, wantErr %v", err, tt.wantErr) if tt.wantErr {
require.Error(t, err, "IsReady()")
} else {
require.NoError(t, err, "IsReady()")
}
assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want) assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want)
}) })
} }
@ -646,7 +674,11 @@ func Test_ReadyChecker_IsReady_ReplicaSet(t *testing.T) {
} }
// //
got, err := c.IsReady(tt.args.ctx, tt.args.resource) got, err := c.IsReady(tt.args.ctx, tt.args.resource)
assert.Equal(t, tt.wantErr, (err != nil), "IsReady() error = %v, wantErr %v", err, tt.wantErr) if tt.wantErr {
require.Error(t, err, "IsReady()")
} else {
require.NoError(t, err, "IsReady()")
}
assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want) assert.Equal(t, tt.want, got, "IsReady() = %v, want %v", got, tt.want)
}) })
} }
@ -1044,9 +1076,10 @@ func Test_ReadyChecker_jobReady(t *testing.T) {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
c := NewReadyChecker(fake.NewClientset()) c := NewReadyChecker(fake.NewClientset())
got, err := c.jobReady(tt.args.job) got, err := c.jobReady(tt.args.job)
if (err != nil) != tt.wantErr { if tt.wantErr {
t.Errorf("jobReady() error = %v, wantErr %v", err, tt.wantErr) require.Error(t, err, "jobReady()")
return } else {
require.NoError(t, err, "jobReady()")
} }
assert.Equal(t, tt.want, got, "jobReady() = %v, want %v", got, tt.want) assert.Equal(t, tt.want, got, "jobReady() = %v, want %v", got, tt.want)
}) })

@ -42,13 +42,11 @@ func TestResourceList(t *testing.T) {
diff := r1.Difference(r2) diff := r1.Difference(r2)
assert.Len(t, diff, 1, "expected 1 result") assert.Len(t, diff, 1, "expected 1 result")
assert.Contains(t, diff, info("foo"), "expected diff to return foo")
assert.True(t, diff.Contains(info("foo")), "expected diff to return foo")
inter := r1.Intersect(r2) inter := r1.Intersect(r2)
assert.Len(t, inter, 1, "expected 1 result") assert.Len(t, inter, 1, "expected 1 result")
assert.Contains(t, inter, info("bar"), "expected intersect to return bar")
assert.True(t, inter.Contains(info("bar")), "expected intersect to return bar")
} }
func TestIsMatchingInfo(t *testing.T) { func TestIsMatchingInfo(t *testing.T) {

@ -297,8 +297,7 @@ func TestLegacyWaiter_waitForPodSuccess(t *testing.T) {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
done, err := lw.waitForPodSuccess(tt.obj, "foo") done, err := lw.waitForPodSuccess(tt.obj, "foo")
if tt.wantErr { if tt.wantErr {
require.Error(t, err, "expected error, got none") require.ErrorContains(t, err, tt.errMessage)
require.ErrorContains(t, err, tt.errMessage, "expected error to contain %q, got %q", tt.errMessage, err.Error())
} else { } else {
require.NoError(t, err) require.NoError(t, err)
} }
@ -384,8 +383,7 @@ func TestLegacyWaiter_waitForJob(t *testing.T) {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
done, err := lw.waitForJob(tt.obj, "test-job") done, err := lw.waitForJob(tt.obj, "test-job")
if tt.wantErr { if tt.wantErr {
require.Error(t, err, "expected error, got none") require.ErrorContains(t, err, tt.errMessage)
require.ErrorContainsf(t, err, tt.errMessage, "expected error to contain %q, got %q", tt.errMessage, err.Error())
} else { } else {
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, tt.wantDone, done, "got done=%v, want %v", done, tt.wantDone) assert.Equal(t, tt.wantDone, done, "got done=%v, want %v", done, tt.wantDone)

@ -141,12 +141,11 @@ func TestRetryingRoundTripper_RoundTrip(t *testing.T) {
if tt.expectedErr != "" { if tt.expectedErr != "" {
require.ErrorContains(t, err, tt.expectedErr) require.ErrorContains(t, err, tt.expectedErr)
return } else {
require.NoError(t, err)
assert.Equal(t, tt.expectedCode, resp.StatusCode)
assert.Equal(t, tt.expectedCalls, fakeRT.calls)
} }
require.NoError(t, err)
assert.Equal(t, tt.expectedCode, resp.StatusCode)
assert.Equal(t, tt.expectedCalls, fakeRT.calls)
}) })
} }
} }

@ -128,9 +128,7 @@ func TestParseMessageBlock(t *testing.T) {
func TestLoadKey(t *testing.T) { func TestLoadKey(t *testing.T) {
k, err := loadKey(testKeyfile) k, err := loadKey(testKeyfile)
require.NoError(t, err) require.NoError(t, err)
assert.Containsf(t, k.Identities, testKeyName, "Expected to load a key for user %q", testKeyName)
_, ok := k.Identities[testKeyName]
assert.Truef(t, ok, "Expected to load a key for user %q", testKeyName)
} }
func TestLoadKeyRing(t *testing.T) { func TestLoadKeyRing(t *testing.T) {
@ -163,8 +161,7 @@ func TestNewFromFiles(t *testing.T) {
s, err := NewFromFiles(testKeyfile, testPubfile) s, err := NewFromFiles(testKeyfile, testPubfile)
require.NoError(t, err) require.NoError(t, err)
_, ok := s.Entity.Identities[testKeyName] assert.Containsf(t, s.Entity.Identities, testKeyName, "Expected to load a key for user %q", testKeyName)
assert.Truef(t, ok, "Expected to load a key for user %q", testKeyName)
} }
func TestDigestFile(t *testing.T) { func TestDigestFile(t *testing.T) {
@ -240,7 +237,6 @@ func TestMixedKeyringRSASigningAndVerification(t *testing.T) {
} }
assert.True(t, hasEdDSA, "expected %s to include an Ed25519 public key", testMixedKeyring) assert.True(t, hasEdDSA, "expected %s to include an Ed25519 public key", testMixedKeyring)
require.NotNil(t, signer.Entity, "expected signer entity to be loaded") require.NotNil(t, signer.Entity, "expected signer entity to be loaded")
require.NotNil(t, signer.Entity.PrivateKey, "expected signer private key to be loaded") require.NotNil(t, signer.Entity.PrivateKey, "expected signer private key to be loaded")
assert.Equal(t, packet.PubKeyAlgoRSA, signer.Entity.PrivateKey.PubKeyAlgo, "expected RSA key") assert.Equal(t, packet.PubKeyAlgoRSA, signer.Entity.PrivateKey.PubKeyAlgo, "expected RSA key")
@ -259,9 +255,7 @@ func TestMixedKeyringRSASigningAndVerification(t *testing.T) {
require.NotNil(t, verification.SignedBy, "expected verification to include signer") require.NotNil(t, verification.SignedBy, "expected verification to include signer")
require.NotNil(t, verification.SignedBy.PrimaryKey, "expected verification to include signer primary key") require.NotNil(t, verification.SignedBy.PrimaryKey, "expected verification to include signer primary key")
assert.Equal(t, packet.PubKeyAlgoRSA, verification.SignedBy.PrimaryKey.PubKeyAlgo, "expected verification to report RSA key") assert.Equal(t, packet.PubKeyAlgoRSA, verification.SignedBy.PrimaryKey.PubKeyAlgo, "expected verification to report RSA key")
assert.Contains(t, verification.SignedBy.Identities, testKeyName, "expected verification to be signed by %q", testKeyName)
_, ok := verification.SignedBy.Identities[testKeyName]
assert.True(t, ok, "expected verification to be signed by %q", testKeyName)
} }
// failSigner always fails to sign and returns an error // failSigner always fails to sign and returns an error

@ -33,8 +33,7 @@ func TestNewOCIPusher(t *testing.T) {
p, err := NewOCIPusher() p, err := NewOCIPusher()
require.NoError(t, err) require.NoError(t, err)
_, ok := p.(*OCIPusher) require.IsType(t, &OCIPusher{}, p, "Expected NewOCIPusher to produce an *OCIPusher")
require.True(t, ok, "Expected NewOCIPusher to produce an *OCIPusher")
cd := "../../testdata" cd := "../../testdata"
join := filepath.Join join := filepath.Join
@ -196,7 +195,7 @@ func TestOCIPusher_newRegistryClient(t *testing.T) {
if tt.expectError { if tt.expectError {
require.Error(t, err, "Expected error but got none") require.Error(t, err, "Expected error but got none")
if tt.errorContains != "" { if tt.errorContains != "" {
require.ErrorContainsf(t, err, tt.errorContains, "Expected error containing %q, got %q", tt.errorContains, err.Error()) require.ErrorContains(t, err, tt.errorContains)
} }
} else { } else {
require.NoError(t, err) require.NoError(t, err)

@ -232,8 +232,7 @@ func TestGenerateOCICreatedAnnotations(t *testing.T) {
result := generateOCIAnnotations(testChart, nowTimeString) result := generateOCIAnnotations(testChart, nowTimeString)
// Check that created annotation exists // Check that created annotation exists
_, ok := result[ocispec.AnnotationCreated] assert.Contains(t, result, ocispec.AnnotationCreated, "%s annotation not created", ocispec.AnnotationCreated)
assert.True(t, ok, "%s annotation not created", ocispec.AnnotationCreated)
// Verify value of created artifact in RFC3339 format // Verify value of created artifact in RFC3339 format
_, err := time.Parse(time.RFC3339, result[ocispec.AnnotationCreated]) _, err := time.Parse(time.RFC3339, result[ocispec.AnnotationCreated])
@ -243,8 +242,7 @@ func TestGenerateOCICreatedAnnotations(t *testing.T) {
result = generateOCIAnnotations(testChart, "") result = generateOCIAnnotations(testChart, "")
// Check that created annotation exists // Check that created annotation exists
_, ok = result[ocispec.AnnotationCreated] require.Contains(t, result, ocispec.AnnotationCreated, "%s annotation not created", ocispec.AnnotationCreated)
require.True(t, ok, "%s annotation not created", ocispec.AnnotationCreated)
createdTimeAnnotation, err := time.Parse(time.RFC3339, result[ocispec.AnnotationCreated]) createdTimeAnnotation, err := time.Parse(time.RFC3339, result[ocispec.AnnotationCreated])
require.NoError(t, err, "%s annotation with value '%s' not in RFC3339 format", ocispec.AnnotationCreated, result[ocispec.AnnotationCreated]) require.NoError(t, err, "%s annotation with value '%s' not in RFC3339 format", ocispec.AnnotationCreated, result[ocispec.AnnotationCreated])

@ -65,9 +65,9 @@ func TestLogin_ResetsForceAttemptOAuth2_OnSuccess(t *testing.T) {
if r.URL.Path == "/v2/" { if r.URL.Path == "/v2/" {
// Accept either HEAD or GET // Accept either HEAD or GET
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
return } else {
http.NotFound(w, r)
} }
http.NotFound(w, r)
})) }))
defer srv.Close() defer srv.Close()

@ -78,11 +78,10 @@ func TestGetPluginName(t *testing.T) {
if tt.expectErr { if tt.expectErr {
assert.Error(t, err, "expected error but got none") assert.Error(t, err, "expected error but got none")
return } else {
require.NoError(t, err)
assert.Equal(t, tt.expected, pluginName)
} }
require.NoError(t, err)
assert.Equal(t, tt.expected, pluginName)
}) })
} }
} }

@ -376,23 +376,21 @@ func initFakeRegistryTestServer() string {
if err != nil { if err != nil {
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte(err.Error())) w.Write([]byte(err.Error()))
return } else {
w.Header().Set("Content-Type", ProvLayerMediaType)
w.Write(data)
} }
w.Header().Set("Content-Type", ProvLayerMediaType)
w.Write(data)
case "/v2/testrepo/image-index/blobs/sha256:e5ef611620fb97704d8751c16bab17fedb68883bfb0edc76f78a70e9173f9b55": case "/v2/testrepo/image-index/blobs/sha256:e5ef611620fb97704d8751c16bab17fedb68883bfb0edc76f78a70e9173f9b55":
data, err := os.ReadFile("../downloader/testdata/signtest-0.1.0.tgz") data, err := os.ReadFile("../downloader/testdata/signtest-0.1.0.tgz")
if err != nil { if err != nil {
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte(err.Error())) w.Write([]byte(err.Error()))
return } else {
w.Header().Set("Content-Type", ChartLayerMediaType)
w.Write(data)
} }
w.Header().Set("Content-Type", ChartLayerMediaType)
w.Write(data)
default: default:
w.WriteHeader(http.StatusNotFound) w.WriteHeader(http.StatusNotFound)
} }

@ -143,7 +143,6 @@ metadata:
// This test will fail if 'six' or 'seven' was added. // This test will fail if 'six' or 'seven' was added.
assert.Len(t, generic, 2) assert.Len(t, generic, 2)
assert.Len(t, hs, 4) assert.Len(t, hs, 4)
for _, out := range hs { for _, out := range hs {

@ -175,9 +175,7 @@ func TestFindChartInAuthAndTLSAndPassRepoURL(t *testing.T) {
// versions of Darwin do not. As there are people developing Helm using both old and new versions of Darwin we test // versions of Darwin do not. As there are people developing Helm using both old and new versions of Darwin we test
// for both messages. // for both messages.
if runtime.GOOS == "darwin" { if runtime.GOOS == "darwin" {
if !strings.Contains(err.Error(), "x509: “Acme Co” certificate is not trusted") && !strings.Contains(err.Error(), "x509: certificate signed by unknown authority") { assert.True(t, strings.Contains(err.Error(), "x509: “Acme Co” certificate is not trusted") || strings.Contains(err.Error(), "x509: certificate signed by unknown authority"), "Expected TLS error for function FindChartInAuthAndTLSAndPassRepoURL not found, but got a different error (%v)", err)
t.Errorf("Expected TLS error for function FindChartInAuthAndTLSAndPassRepoURL not found, but got a different error (%v)", err)
}
} else { } else {
assert.ErrorContainsf(t, err, "x509: certificate signed by unknown authority", "Expected TLS error for function FindChartInAuthAndTLSAndPassRepoURL not found, but got a different error") assert.ErrorContainsf(t, err, "x509: certificate signed by unknown authority", "Expected TLS error for function FindChartInAuthAndTLSAndPassRepoURL not found, but got a different error")
} }
@ -203,7 +201,6 @@ func TestErrorFindChartInRepoURL(t *testing.T) {
}) })
_, err := FindChartInRepoURL("http://someserver/something", "nginx", g) _, err := FindChartInRepoURL("http://someserver/something", "nginx", g)
require.Error(t, err, "Expected error for bad chart URL, but did not get any errors")
require.ErrorContainsf(t, err, `looks like "http://someserver/something" is not a valid chart repository or cannot be reached`, "Expected error for bad chart URL, but got a different error") require.ErrorContainsf(t, err, `looks like "http://someserver/something" is not a valid chart repository or cannot be reached`, "Expected error for bad chart URL, but got a different error")
srv, err := startLocalServerForTests(nil) srv, err := startLocalServerForTests(nil)
@ -211,16 +208,13 @@ func TestErrorFindChartInRepoURL(t *testing.T) {
defer srv.Close() defer srv.Close()
_, err = FindChartInRepoURL(srv.URL, "nginx1", g) _, err = FindChartInRepoURL(srv.URL, "nginx1", g)
require.Error(t, err, "Expected error for chart not found, but did not get any errors")
require.EqualError(t, err, `chart "nginx1" not found in `+srv.URL+` repository`, "Expected error for chart not found, but got a different error") require.EqualError(t, err, `chart "nginx1" not found in `+srv.URL+` repository`, "Expected error for chart not found, but got a different error")
require.ErrorIs(t, err, ChartNotFoundError{}, "error is not of correct error type structure") require.ErrorIs(t, err, ChartNotFoundError{}, "error is not of correct error type structure")
_, err = FindChartInRepoURL(srv.URL, "nginx1", g, WithChartVersion("0.1.0")) _, err = FindChartInRepoURL(srv.URL, "nginx1", g, WithChartVersion("0.1.0"))
require.Error(t, err, "Expected error for chart not found, but did not get any errors")
require.EqualError(t, err, `chart "nginx1" version "0.1.0" not found in `+srv.URL+` repository`, "Expected error for chart not found, but got a different error") require.EqualError(t, err, `chart "nginx1" version "0.1.0" not found in `+srv.URL+` repository`, "Expected error for chart not found, but got a different error")
_, err = FindChartInRepoURL(srv.URL, "chartWithNoURL", g) _, err = FindChartInRepoURL(srv.URL, "chartWithNoURL", g)
require.Error(t, err, "Expected error for no chart URLs available, but did not get any errors")
assert.EqualError(t, err, `chart "chartWithNoURL" has no downloadable URLs`, "Expected error for chart not found, but got a different error") assert.EqualError(t, err, `chart "chartWithNoURL" has no downloadable URLs`, "Expected error for chart not found, but got a different error")
} }

@ -120,11 +120,8 @@ func TestRemoveRepository(t *testing.T) {
) )
removeRepository := "stable" removeRepository := "stable"
found := sampleRepository.Remove(removeRepository) assert.Truef(t, sampleRepository.Remove(removeRepository), "expected repository %s not found", removeRepository)
assert.Truef(t, found, "expected repository %s not found", removeRepository) assert.Falsef(t, sampleRepository.Has(removeRepository), "repository %s not deleted", removeRepository)
found = sampleRepository.Has(removeRepository)
assert.Falsef(t, found, "repository %s not deleted", removeRepository)
} }
func TestUpdateRepository(t *testing.T) { func TestUpdateRepository(t *testing.T) {
@ -205,9 +202,6 @@ func TestRemoveRepositoryInvalidEntries(t *testing.T) {
) )
removeRepository := "stable" removeRepository := "stable"
found := sampleRepository.Remove(removeRepository) assert.Truef(t, sampleRepository.Remove(removeRepository), "expected repository %s not found", removeRepository)
assert.Truef(t, found, "expected repository %s not found", removeRepository) assert.Falsef(t, sampleRepository.Has(removeRepository), "repository %s not deleted", removeRepository)
found = sampleRepository.Has(removeRepository)
assert.Falsef(t, found, "repository %s not deleted", removeRepository)
} }

@ -42,24 +42,25 @@ func TestServer(t *testing.T) {
c, err := srv.CopyCharts("testdata/*.tgz") c, err := srv.CopyCharts("testdata/*.tgz")
require.NoError(t, err) require.NoError(t, err)
require.Len(t, c, 1)
assert.Len(t, c, 1)
assert.Equal(t, "examplechart-0.1.0.tgz", filepath.Base(c[0])) assert.Equal(t, "examplechart-0.1.0.tgz", filepath.Base(c[0]))
req, err := http.NewRequestWithContext(t.Context(), http.MethodGet, srv.URL()+"/examplechart-0.1.0.tgz", http.NoBody) req, err := http.NewRequestWithContext(t.Context(), http.MethodGet, srv.URL()+"/examplechart-0.1.0.tgz", http.NoBody)
require.NoError(t, err) require.NoError(t, err)
client := http.DefaultClient client := http.DefaultClient
res, err := client.Do(req) res, err := client.Do(req)
require.NoError(t, err) require.NoError(t, err)
res.Body.Close()
res.Body.Close()
assert.GreaterOrEqual(t, res.ContentLength, int64(500)) assert.GreaterOrEqual(t, res.ContentLength, int64(500))
req, err = http.NewRequestWithContext(t.Context(), http.MethodGet, srv.URL()+"/index.yaml", http.NoBody) req, err = http.NewRequestWithContext(t.Context(), http.MethodGet, srv.URL()+"/index.yaml", http.NoBody)
require.NoError(t, err) require.NoError(t, err)
res, err = client.Do(req) res, err = client.Do(req)
require.NoError(t, err) require.NoError(t, err)
data, err := io.ReadAll(res.Body) data, err := io.ReadAll(res.Body)
res.Body.Close() res.Body.Close()
require.NoError(t, err) require.NoError(t, err)

@ -18,6 +18,8 @@ package driver
import ( import (
"testing" "testing"
"github.com/stretchr/testify/require"
) )
func TestLabelsMatch(t *testing.T) { func TestLabelsMatch(t *testing.T) {
@ -42,8 +44,8 @@ func TestLabelsMatch(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
if !tt.set1.match(tt.set2) && tt.expect { t.Run(tt.desc, func(t *testing.T) {
t.Fatalf("Expected match '%s'\n", tt.desc) require.False(t, !tt.set1.match(tt.set2) && tt.expect)
} })
} }
} }

@ -17,7 +17,6 @@ limitations under the License.
package driver package driver
import ( import (
"reflect"
"testing" "testing"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@ -132,7 +131,7 @@ func TestRecordsGet(t *testing.T) {
for _, tt := range tests { for _, tt := range tests {
got := rs.Get(tt.key) got := rs.Get(tt.key)
require.Truef(t, reflect.DeepEqual(tt.rec, got), "Expected %v, got %v", tt.rec, got) require.Equal(t, tt.rec, got, "Expected %v, got %v", tt.rec, got)
} }
} }
@ -222,6 +221,6 @@ func TestRecordsReplace(t *testing.T) {
for _, tt := range tests { for _, tt := range tests {
got := rs.Replace(tt.key, tt.rec) got := rs.Replace(tt.key, tt.rec)
require.Truef(t, reflect.DeepEqual(tt.expected, got), "Expected %v, got %v", tt.expected, got) require.Equalf(t, tt.expected, got, "Expected %v, got %v", tt.expected, got)
} }
} }

@ -14,7 +14,6 @@ limitations under the License.
package driver package driver
import ( import (
"reflect"
"testing" "testing"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@ -22,7 +21,7 @@ import (
func TestGetSystemLabel(t *testing.T) { func TestGetSystemLabel(t *testing.T) {
output := GetSystemLabels() output := GetSystemLabels()
assert.Truef(t, reflect.DeepEqual(systemLabels, output), "Expected {%v}, got {%v}", systemLabels, output) assert.Equalf(t, systemLabels, output, "Expected {%v}, got {%v}", systemLabels, output)
} }
func TestIsSystemLabel(t *testing.T) { func TestIsSystemLabel(t *testing.T) {
@ -69,7 +68,7 @@ func TestFilterSystemLabels(t *testing.T) {
} }
for _, test := range tests { for _, test := range tests {
output := filterSystemLabels(test[0]) output := filterSystemLabels(test[0])
assert.Truef(t, reflect.DeepEqual(test[1], output), "Expected {%v}, got {%v}", test[1], output) assert.Equalf(t, test[1], output, "Expected {%v}, got {%v}", test[1], output)
} }
} }
@ -101,6 +100,6 @@ func TestContainsSystemLabels(t *testing.T) {
} }
for _, test := range tests { for _, test := range tests {
output := ContainsSystemLabels(test.input) output := ContainsSystemLabels(test.input)
assert.Truef(t, reflect.DeepEqual(test.output, output), "Expected {%v}, got {%v}", test.output, output) assert.Equalf(t, test.output, output, "Expected {%v}, got {%v}", test.output, output)
} }
} }

Loading…
Cancel
Save