Merge pull request #32437 from mmorel-35/testifylint-manual-assert-pkg-21

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

@ -58,9 +58,7 @@ func actionConfigFixtureWithDummyResources(t *testing.T, dummyResources kube.Res
slog.SetDefault(logger) slog.SetDefault(logger)
registryClient, err := registry.NewClient() registryClient, err := registry.NewClient()
if err != nil { require.NoError(t, err)
t.Fatal(err)
}
return &Configuration{ return &Configuration{
Releases: storage.Init(driver.NewMemory()), Releases: storage.Init(driver.NewMemory()),
@ -371,16 +369,10 @@ func TestGetVersionSet(t *testing.T) {
client := fakeclientset.NewClientset() client := fakeclientset.NewClientset()
vs, err := GetVersionSet(client.Discovery()) vs, err := GetVersionSet(client.Discovery())
if err != nil { require.NoError(t, err)
t.Error(err)
}
if !vs.Has("v1") { assert.True(t, vs.Has("v1"), "Expected supported versions to at least include v1.")
t.Error("Expected supported versions to at least include v1.") assert.False(t, vs.Has("nosuchversion/v1"), "Non-existent version is reported found.")
}
if vs.Has("nosuchversion/v1") {
t.Error("Non-existent version is reported found.")
}
} }
// Mock PostRenderer for testing // Mock PostRenderer for testing
@ -2031,9 +2023,7 @@ spec:
mockPR := &mockPostRenderer{ mockPR := &mockPostRenderer{
transform: func(content string) string { transform: func(content string) string {
count := strings.Count(content, "kind: ServiceAccount") count := strings.Count(content, "kind: ServiceAccount")
if count > 1 { assert.LessOrEqualf(t, count, 1, "post-renderer received %d ServiceAccount resources in a single stream, expected at most 1", count)
t.Errorf("post-renderer received %d ServiceAccount resources in a single stream, expected at most 1", count)
}
return content return content
}, },
} }

@ -57,9 +57,7 @@ func TestList(t *testing.T) {
}, },
} { } {
buf := bytes.Buffer{} buf := bytes.Buffer{}
if err := NewDependency().List(tcase.chart, &buf); err != nil { require.NoError(t, NewDependency().List(tcase.chart, &buf))
t.Fatal(err)
}
test.AssertGoldenString(t, buf.String(), tcase.golden) test.AssertGoldenString(t, buf.String(), tcase.golden)
} }
} }
@ -71,22 +69,16 @@ func TestDependencyStatus_Dashes(t *testing.T) {
dir := t.TempDir() dir := t.TempDir()
chartpath := filepath.Join(dir, "charts") chartpath := filepath.Join(dir, "charts")
if err := os.MkdirAll(chartpath, 0o700); err != nil { require.NoError(t, os.MkdirAll(chartpath, 0o700))
t.Fatal(err)
}
// Add some fake charts // Add some fake charts
first := buildChart(withName("first-chart")) first := buildChart(withName("first-chart"))
_, err := chartutil.Save(first, chartpath) _, err := chartutil.Save(first, chartpath)
if err != nil { require.NoError(t, err)
t.Fatal(err)
}
second := buildChart(withName("first-chart-second-chart")) second := buildChart(withName("first-chart-second-chart"))
_, err = chartutil.Save(second, chartpath) _, err = chartutil.Save(second, chartpath)
if err != nil { require.NoError(t, err)
t.Fatal(err)
}
dep := &chart.Dependency{ dep := &chart.Dependency{
Name: "first-chart", Name: "first-chart",
@ -95,9 +87,7 @@ func TestDependencyStatus_Dashes(t *testing.T) {
// Now try to get the deps // Now try to get the deps
stat := NewDependency().dependencyStatus(dir, dep, first) stat := NewDependency().dependencyStatus(dir, dep, first)
if stat != "ok" { assert.Equal(t, "ok", stat, "Unexpected status: %q", stat)
t.Errorf("Unexpected status: %q", stat)
}
} }
func TestStatArchiveForStatus(t *testing.T) { func TestStatArchiveForStatus(t *testing.T) {
@ -105,9 +95,7 @@ func TestStatArchiveForStatus(t *testing.T) {
dir := t.TempDir() dir := t.TempDir()
chartpath := filepath.Join(dir, "charts") chartpath := filepath.Join(dir, "charts")
if err := os.MkdirAll(chartpath, 0o700); err != nil { require.NoError(t, os.MkdirAll(chartpath, 0o700))
t.Fatal(err)
}
// unsaved chart // unsaved chart
lilith := buildChart(withName("lilith")) lilith := buildChart(withName("lilith"))

@ -44,9 +44,7 @@ func TestListStates(t *testing.T) {
"unknown": ListUnknown, "unknown": ListUnknown,
"totally made up key": ListUnknown, "totally made up key": ListUnknown,
} { } {
if expect != expect.FromName(input) { assert.Equal(t, expect.FromName(input), expect, "Expected %d for %s", expect, input)
t.Errorf("Expected %d for %s", expect, input)
}
// This is a cheap way to verify that ListAll actually allows everything but Unknown // This is a cheap way to verify that ListAll actually allows everything but Unknown
if got := expect.FromName(input); got != ListUnknown && got&ListAll == 0 { if got := expect.FromName(input); got != ListUnknown && got&ListAll == 0 {
t.Errorf("Expected %s to match the ListAll filter", input) t.Errorf("Expected %s to match the ListAll filter", input)
@ -54,12 +52,10 @@ func TestListStates(t *testing.T) {
} }
filter := ListDeployed | ListPendingRollback filter := ListDeployed | ListPendingRollback
if status := filter.FromName("deployed"); filter&status == 0 { status := filter.FromName("deployed")
t.Errorf("Expected %d to match mask %d", status, filter) assert.NotEqualf(t, ListStates(0), filter&status, "Expected %d to match mask %d", status, filter)
} status = filter.FromName("failed")
if status := filter.FromName("failed"); filter&status != 0 { assert.Equalf(t, ListStates(0), filter&status, "Expected %d to fail to match mask %d", status, filter)
t.Errorf("Expected %d to fail to match mask %d", status, filter)
}
} }
func TestList_Empty(t *testing.T) { func TestList_Empty(t *testing.T) {
@ -202,8 +198,7 @@ func TestList_StateMask(t *testing.T) {
} }
one.SetStatus(common.StatusUninstalled, "uninstalled") one.SetStatus(common.StatusUninstalled, "uninstalled")
err = lister.cfg.Releases.Update(one) req.NoError(lister.cfg.Releases.Update(one))
req.NoError(err)
res, err := lister.Run() res, err := lister.Run()
req.NoError(err) req.NoError(err)
@ -277,9 +272,7 @@ func makeMeSomeReleasesWithStaleFailure(t *testing.T, store *storage.Storage) {
five.Version = 1 five.Version = 1
for _, rel := range []*release.Release{one, two, three, four, five} { for _, rel := range []*release.Release{one, two, three, four, five} {
if err := store.Create(rel); err != nil { require.NoError(t, store.Create(rel))
t.Fatal(err)
}
} }
all, err := store.ListReleases() all, err := store.ListReleases()
@ -328,9 +321,7 @@ func makeMeSomeReleases(t *testing.T, store *storage.Storage) {
three.Version = 3 three.Version = 3
for _, rel := range []*release.Release{one, two, three} { for _, rel := range []*release.Release{one, two, three} {
if err := store.Create(rel); err != nil { require.NoError(t, store.Create(rel))
t.Fatal(err)
}
} }
all, err := store.ListReleases() all, err := store.ListReleases()
@ -389,9 +380,7 @@ func TestSelectorList(t *testing.T) {
lister := newListFixture(t) lister := newListFixture(t)
for _, rel := range []*release.Release{r1, r2, r3} { for _, rel := range []*release.Release{r1, r2, r3} {
if err := lister.cfg.Releases.Create(rel); err != nil { require.NoError(t, lister.cfg.Releases.Create(rel))
t.Fatal(err)
}
} }
t.Run("should fail selector parsing", func(t *testing.T) { t.Run("should fail selector parsing", func(t *testing.T) {

@ -19,6 +19,9 @@ package support
import ( import (
"errors" "errors"
"testing" "testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
) )
var errLint = errors.New("lint failed") var errLint = errors.New("lint failed")
@ -47,33 +50,19 @@ func TestRunLinterRule(t *testing.T) {
linter := Linter{} linter := Linter{}
for _, test := range tests { for _, test := range tests {
isValid := linter.RunLinterRule(test.Severity, "chart", test.LintError) isValid := linter.RunLinterRule(test.Severity, "chart", test.LintError)
if len(linter.Messages) != test.ExpectedMessages { assert.Lenf(t, linter.Messages, test.ExpectedMessages, "RunLinterRule(%d, \"chart\", %v), linter.Messages should now have %d message, we got %d", test.Severity, test.LintError, test.ExpectedMessages, len(linter.Messages))
t.Errorf("RunLinterRule(%d, \"chart\", %v), linter.Messages should now have %d message, we got %d", test.Severity, test.LintError, test.ExpectedMessages, len(linter.Messages)) assert.Equalf(t, linter.HighestSeverity, test.ExpectedHighestSeverity, "RunLinterRule(%d, \"chart\", %v), linter.HighestSeverity should be %d, we got %d", test.Severity, test.LintError, test.ExpectedHighestSeverity, linter.HighestSeverity)
} assert.Equalf(t, isValid, test.ExpectedReturn, "RunLinterRule(%d, \"chart\", %v), should have returned %t but returned %t", test.Severity, test.LintError, test.ExpectedReturn, isValid)
if linter.HighestSeverity != test.ExpectedHighestSeverity {
t.Errorf("RunLinterRule(%d, \"chart\", %v), linter.HighestSeverity should be %d, we got %d", test.Severity, test.LintError, test.ExpectedHighestSeverity, linter.HighestSeverity)
}
if isValid != test.ExpectedReturn {
t.Errorf("RunLinterRule(%d, \"chart\", %v), should have returned %t but returned %t", test.Severity, test.LintError, test.ExpectedReturn, isValid)
}
} }
} }
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")}
if m.Error() != "[ERROR] Chart.yaml: Foo" { require.EqualErrorf(t, m, "[ERROR] Chart.yaml: Foo", "Unexpected output: %s", m.Error())
t.Errorf("Unexpected output: %s", m.Error())
}
m = Message{WarningSev, "templates/", errors.New("Bar")} m = Message{WarningSev, "templates/", errors.New("Bar")}
if m.Error() != "[WARNING] templates/: Bar" { require.EqualErrorf(t, m, "[WARNING] templates/: Bar", "Unexpected output: %s", m.Error())
t.Errorf("Unexpected output: %s", m.Error())
}
m = Message{InfoSev, "templates/rc.yaml", errors.New("FooBar")} m = Message{InfoSev, "templates/rc.yaml", errors.New("FooBar")}
if m.Error() != "[INFO] templates/rc.yaml: FooBar" { assert.EqualErrorf(t, m, "[INFO] templates/rc.yaml: FooBar", "Unexpected output: %s", m.Error())
t.Errorf("Unexpected output: %s", m.Error())
}
} }

@ -385,16 +385,16 @@ func TestReleaseInfoUnmarshalJSON(t *testing.T) {
err := json.Unmarshal([]byte(tt.input), &info) err := json.Unmarshal([]byte(tt.input), &info)
if tt.wantErr { if tt.wantErr {
assert.Error(t, err) assert.Error(t, err)
return } else {
require.NoError(t, err)
assert.Equal(t, tt.expected.Revision, info.Revision)
assert.Equal(t, tt.expected.Updated.Unix(), info.Updated.Unix())
assert.Equal(t, tt.expected.Status, info.Status)
assert.Equal(t, tt.expected.Chart, info.Chart)
assert.Equal(t, tt.expected.AppVersion, info.AppVersion)
assert.Equal(t, tt.expected.RollbackRevision, info.RollbackRevision)
assert.Equal(t, tt.expected.Description, info.Description)
} }
require.NoError(t, err)
assert.Equal(t, tt.expected.Revision, info.Revision)
assert.Equal(t, tt.expected.Updated.Unix(), info.Updated.Unix())
assert.Equal(t, tt.expected.Status, info.Status)
assert.Equal(t, tt.expected.Chart, info.Chart)
assert.Equal(t, tt.expected.AppVersion, info.AppVersion)
assert.Equal(t, tt.expected.RollbackRevision, info.RollbackRevision)
assert.Equal(t, tt.expected.Description, info.Description)
}) })
} }
} }
@ -415,9 +415,7 @@ func TestReleaseInfoRoundTrip(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
var decoded releaseInfo var decoded releaseInfo
err = json.Unmarshal(data, &decoded) require.NoError(t, json.Unmarshal(data, &decoded))
require.NoError(t, err)
assert.Equal(t, original.Revision, decoded.Revision) assert.Equal(t, original.Revision, decoded.Revision)
assert.Equal(t, original.Updated.Unix(), decoded.Updated.Unix()) assert.Equal(t, original.Updated.Unix(), decoded.Updated.Unix())
assert.Equal(t, original.Status, decoded.Status) assert.Equal(t, original.Status, decoded.Status)
@ -433,11 +431,10 @@ func TestReleaseInfoEmptyStringRoundTrip(t *testing.T) {
input := `{"revision":1,"updated":"","status":"deployed","chart":"mychart-1.0.0","app_version":"1.0.0","description":"Test"}` input := `{"revision":1,"updated":"","status":"deployed","chart":"mychart-1.0.0","app_version":"1.0.0","description":"Test"}`
var info releaseInfo var info releaseInfo
err := json.Unmarshal([]byte(input), &info) require.NoError(t, json.Unmarshal([]byte(input), &info))
require.NoError(t, err)
// Verify time field is zero value // Verify time field is zero value
assert.True(t, info.Updated.IsZero()) assert.Zero(t, info.Updated)
assert.Equal(t, 1, info.Revision) assert.Equal(t, 1, info.Revision)
assert.Equal(t, "deployed", info.Status) assert.Equal(t, "deployed", info.Status)
@ -446,8 +443,7 @@ func TestReleaseInfoEmptyStringRoundTrip(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
var result map[string]any var result map[string]any
err = json.Unmarshal(data, &result) require.NoError(t, json.Unmarshal(data, &result))
require.NoError(t, err)
// Zero time value should be omitted // Zero time value should be omitted
assert.NotContains(t, result, "updated") assert.NotContains(t, result, "updated")

@ -18,10 +18,10 @@ package require
import ( import (
"io" "io"
"strconv" "strconv"
"strings"
"testing" "testing"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/stretchr/testify/require"
) )
func TestArgs(t *testing.T) { func TestArgs(t *testing.T) {
@ -77,16 +77,10 @@ func runTestCases(t *testing.T, testCases []testCase) {
err := cmd.Execute() err := cmd.Execute()
if tc.wantError == "" { if tc.wantError == "" {
if err != nil { require.NoError(t, err)
t.Fatalf("unexpected error, got '%v'", err) } else {
} require.ErrorContains(t, err, tc.wantError)
return require.ErrorContains(t, err, "Usage:")
}
if !strings.Contains(err.Error(), tc.wantError) {
t.Fatalf("unexpected error \n\nWANT:\n%q\n\nGOT:\n%q\n", tc.wantError, err)
}
if !strings.Contains(err.Error(), "Usage:") {
t.Fatalf("unexpected error: want Usage string\n\nGOT:\n%q\n", err)
} }
}) })
} }

@ -21,6 +21,9 @@ import (
"reflect" "reflect"
"testing" "testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
chart "helm.sh/helm/v4/pkg/chart/v2" chart "helm.sh/helm/v4/pkg/chart/v2"
"helm.sh/helm/v4/pkg/release/common" "helm.sh/helm/v4/pkg/release/common"
release "helm.sh/helm/v4/pkg/release/v1" release "helm.sh/helm/v4/pkg/release/v1"
@ -148,24 +151,15 @@ func TestRollbackWithLabels(t *testing.T) {
} }
storage := storageFixture() storage := storageFixture()
for _, rel := range rels { for _, rel := range rels {
if err := storage.Create(rel); err != nil { require.NoError(t, storage.Create(rel))
t.Fatal(err)
}
} }
_, _, err := executeActionCommandC(storage, fmt.Sprintf("rollback %s 1", releaseName)) _, _, err := executeActionCommandC(storage, fmt.Sprintf("rollback %s 1", releaseName))
if err != nil { require.NoError(t, err)
t.Errorf("unexpected error, got '%v'", err)
}
updatedReli, err := storage.Get(releaseName, 3) updatedReli, err := storage.Get(releaseName, 3)
if err != nil { require.NoError(t, err)
t.Errorf("unexpected error, got '%v'", err)
}
updatedRel, err := releaserToV1Release(updatedReli)
if err != nil {
t.Errorf("unexpected error, got '%v'", err)
}
if !reflect.DeepEqual(updatedRel.Labels, labels1) { updatedRel, err := releaserToV1Release(updatedReli)
t.Errorf("Expected {%v}, got {%v}", labels1, updatedRel.Labels) require.NoError(t, err)
} assert.Truef(t, reflect.DeepEqual(updatedRel.Labels, labels1), "Expected {%v}, got {%v}", labels1, updatedRel.Labels)
} }

@ -23,6 +23,9 @@ import (
"path/filepath" "path/filepath"
"testing" "testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"helm.sh/helm/v4/internal/test/ensure" "helm.sh/helm/v4/internal/test/ensure"
"helm.sh/helm/v4/pkg/action" "helm.sh/helm/v4/pkg/action"
"helm.sh/helm/v4/pkg/helmpath" "helm.sh/helm/v4/pkg/helmpath"
@ -86,9 +89,8 @@ func TestRootCmd(t *testing.T) {
t.Setenv(k, v) t.Setenv(k, v)
} }
if _, _, err := executeActionCommand(tt.args); err != nil { _, _, err := executeActionCommand(tt.args)
t.Fatalf("unexpected error: %s", err) require.NoError(t, err)
}
// NOTE(bacongobbler): we need to check here after calling ensure.HelmHome so we // NOTE(bacongobbler): we need to check here after calling ensure.HelmHome so we
// load the proper paths after XDG_*_HOME is set // load the proper paths after XDG_*_HOME is set
@ -104,15 +106,9 @@ func TestRootCmd(t *testing.T) {
tt.dataPath = filepath.Join(os.Getenv(xdg.DataHomeEnvVar), "helm") tt.dataPath = filepath.Join(os.Getenv(xdg.DataHomeEnvVar), "helm")
} }
if helmpath.CachePath() != tt.cachePath { assert.Equal(t, tt.cachePath, helmpath.CachePath(), "expected cache path %q, got %q", tt.cachePath, helmpath.CachePath())
t.Errorf("expected cache path %q, got %q", tt.cachePath, helmpath.CachePath()) assert.Equal(t, tt.configPath, helmpath.ConfigPath(), "expected config path %q, got %q", tt.configPath, helmpath.ConfigPath())
} assert.Equal(t, tt.dataPath, helmpath.DataPath(), "expected data path %q, got %q", tt.dataPath, helmpath.DataPath())
if helmpath.ConfigPath() != tt.configPath {
t.Errorf("expected config path %q, got %q", tt.configPath, helmpath.ConfigPath())
}
if helmpath.DataPath() != tt.dataPath {
t.Errorf("expected data path %q, got %q", tt.dataPath, helmpath.DataPath())
}
}) })
} }
} }
@ -120,9 +116,7 @@ func TestRootCmd(t *testing.T) {
func TestUnknownSubCmd(t *testing.T) { func TestUnknownSubCmd(t *testing.T) {
_, _, err := executeActionCommand("foobar") _, _, err := executeActionCommand("foobar")
if err == nil || err.Error() != `unknown command "foobar" for "helm"` { assert.EqualErrorf(t, err, `unknown command "foobar" for "helm"`, "Expect unknown command error")
t.Errorf("Expect unknown command error, got %q", err)
}
} }
// Need the release of Cobra following 1.0 to be able to disable // Need the release of Cobra following 1.0 to be able to disable
@ -138,14 +132,10 @@ func TestRootCmdLogger(t *testing.T) {
buf := new(bytes.Buffer) buf := new(bytes.Buffer)
actionConfig := action.NewConfiguration() actionConfig := action.NewConfiguration()
_, err := newRootCmdWithConfig(actionConfig, buf, args, SetupLogging) _, err := newRootCmdWithConfig(actionConfig, buf, args, SetupLogging)
if err != nil { require.NoError(t, err)
t.Errorf("expected no error, got: '%v'", err)
}
l1 := actionConfig.Logger() l1 := actionConfig.Logger()
l2 := slog.Default() l2 := slog.Default()
if l1.Handler() != l2.Handler() { assert.Equal(t, l2.Handler(), l1.Handler(), "expected actionConfig logger to be the slog default logger")
t.Error("expected actionConfig logger to be the slog default logger")
}
} }

@ -21,6 +21,9 @@ import (
"net/http" "net/http"
"net/http/httptest" "net/http/httptest"
"testing" "testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
) )
func TestSearchHubCmd(t *testing.T) { func TestSearchHubCmd(t *testing.T) {
@ -42,9 +45,7 @@ func TestSearchHubCmd(t *testing.T) {
testcmd := "search hub --endpoint " + ts.URL + " maria" testcmd := "search hub --endpoint " + ts.URL + " maria"
storage := storageFixture() storage := storageFixture()
_, out, err := executeActionCommandC(storage, testcmd) _, out, err := executeActionCommandC(storage, testcmd)
if err != nil { require.NoError(t, err)
t.Errorf("unexpected error, %s", err)
}
if out != expected { if out != expected {
t.Error("expected and actual output did not match") t.Error("expected and actual output did not match")
t.Log(out) t.Log(out)
@ -71,9 +72,7 @@ func TestSearchHubListRepoCmd(t *testing.T) {
testcmd := "search hub --list-repo-url --endpoint " + ts.URL + " maria" testcmd := "search hub --list-repo-url --endpoint " + ts.URL + " maria"
storage := storageFixture() storage := storageFixture()
_, out, err := executeActionCommandC(storage, testcmd) _, out, err := executeActionCommandC(storage, testcmd)
if err != nil { require.NoError(t, err)
t.Errorf("unexpected error, %s", err)
}
if out != expected { if out != expected {
t.Error("expected and actual output did not match") t.Error("expected and actual output did not match")
t.Log(out) t.Log(out)
@ -165,21 +164,14 @@ func TestSearchHubCmd_FailOnNoResponseTests(t *testing.T) {
_, out, err := executeActionCommandC(storage, tt.cmd) _, out, err := executeActionCommandC(storage, tt.cmd)
if tt.wantErr { if tt.wantErr {
if err == nil { require.Error(t, err, "expected error due to no record in response, got nil")
t.Error("expected error due to no record in response, got nil")
}
} else { } else {
if err != nil { require.NoError(t, err)
t.Errorf("unexpected error, got %q", err)
}
} }
if out != tt.expected { assert.Equal(t, tt.expected, out, "expected and actual output did not match\n"+
t.Errorf("expected and actual output did not match\n"+ "expected: %q\n"+
"expected: %q\n"+ "actual : %q", tt.expected, out)
"actual : %q",
tt.expected, out)
}
}) })
} }
} }

@ -44,17 +44,13 @@ func getTestFiles() files {
func TestNewFiles(t *testing.T) { func TestNewFiles(t *testing.T) {
files := getTestFiles() files := getTestFiles()
if len(files) != len(cases) { assert.Len(t, files, len(cases), "Expected len() = %d, got %d", len(cases), len(files))
t.Errorf("Expected len() = %d, got %d", len(cases), len(files))
}
for i, f := range cases { for i, f := range cases {
if got := string(files.GetBytes(f.path)); got != f.data { got := string(files.GetBytes(f.path))
t.Errorf("%d: expected %q, got %q", i, f.data, got) assert.Equalf(t, got, f.data, "%d: expected %q, got %q", i, f.data, got)
} got = files.Get(f.path)
if got := files.Get(f.path); got != f.data { assert.Equalf(t, got, f.data, "%d: expected %q, got %q", i, f.data, got)
t.Errorf("%d: expected %q, got %q", i, f.data, got)
}
} }
} }

@ -134,8 +134,7 @@ keyInElement1 = "valueInElement1"`,
for _, tt := range tests { for _, tt := range tests {
var b strings.Builder var b strings.Builder
err := template.Must(template.New("test").Funcs(funcMap()).Parse(tt.tpl)).Execute(&b, tt.vars) require.NoError(t, template.Must(template.New("test").Funcs(funcMap()).Parse(tt.tpl)).Execute(&b, tt.vars))
require.NoError(t, err)
assert.Equal(t, tt.expect, b.String(), tt.tpl) assert.Equal(t, tt.expect, b.String(), tt.tpl)
} }
@ -360,8 +359,7 @@ func TestDurationHelpers(t *testing.T) {
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
var b strings.Builder var b strings.Builder
err := template.Must(template.New("test").Funcs(funcMap()).Parse(tt.tpl)).Execute(&b, tt.vars) require.NoError(t, template.Must(template.New("test").Funcs(funcMap()).Parse(tt.tpl)).Execute(&b, tt.vars), tt.tpl)
require.NoError(t, err, tt.tpl)
assert.Equal(t, tt.expect, b.String(), tt.tpl) assert.Equal(t, tt.expect, b.String(), tt.tpl)
}) })
} }
@ -422,8 +420,7 @@ func TestDurationHelpers(t *testing.T) {
Funcs(funcMap()). Funcs(funcMap()).
Parse(tt.tpl), Parse(tt.tpl),
) )
err := tmpl.Execute(&b, tt.vars) require.Error(t, tmpl.Execute(&b, tt.vars), tt.tpl)
require.Error(t, err, tt.tpl)
}) })
} }
} }
@ -474,8 +471,7 @@ func TestMerge(t *testing.T) {
} }
tpl := `{{merge .dst .src1 .src2}}` tpl := `{{merge .dst .src1 .src2}}`
var b strings.Builder var b strings.Builder
err := template.Must(template.New("test").Funcs(funcMap()).Parse(tpl)).Execute(&b, dict) require.NoError(t, template.Must(template.New("test").Funcs(funcMap()).Parse(tpl)).Execute(&b, dict))
require.NoError(t, err)
expected := map[string]any{ expected := map[string]any{
"a": "one", // key overridden "a": "one", // key overridden

@ -35,25 +35,18 @@ func TestCollectPlugins(t *testing.T) {
env.PluginsDirectory = pluginDir env.PluginsDirectory = pluginDir
p, err := collectGetterPlugins(env) p, err := collectGetterPlugins(env)
if err != nil { require.NoError(t, err)
t.Fatal(err)
}
if len(p) != 2 { assert.Len(t, p, 2, "Expected 2 plugins, got %d: %v", len(p), p)
t.Errorf("Expected 2 plugins, got %d: %v", len(p), p)
}
if _, err := p.ByScheme("test2"); err != nil { _, err = p.ByScheme("test2")
t.Error(err) require.NoError(t, err)
}
if _, err := p.ByScheme("test"); err != nil { _, err = p.ByScheme("test")
t.Error(err) require.NoError(t, err)
}
if _, err := p.ByScheme("nosuchthing"); err == nil { _, err = p.ByScheme("nosuchthing")
t.Fatal("did not expect protocol handler for nosuchthing") require.Error(t, err, "did not expect protocol handler for nosuchthing")
}
} }
func TestConvertOptions(t *testing.T) { func TestConvertOptions(t *testing.T) {

@ -18,6 +18,9 @@ package pusher
import ( import (
"testing" "testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"helm.sh/helm/v4/pkg/cli" "helm.sh/helm/v4/pkg/cli"
"helm.sh/helm/v4/pkg/registry" "helm.sh/helm/v4/pkg/registry"
) )
@ -28,9 +31,7 @@ func TestProvider(t *testing.T) {
func(_ ...Option) (Pusher, error) { return nil, nil }, func(_ ...Option) (Pusher, error) { return nil, nil },
} }
if !p.Provides("three") { assert.True(t, p.Provides("three"), "Expected provider to provide three")
t.Error("Expected provider to provide three")
}
} }
func TestProviders(t *testing.T) { func TestProviders(t *testing.T) {
@ -39,30 +40,24 @@ func TestProviders(t *testing.T) {
{[]string{"two", "four"}, func(_ ...Option) (Pusher, error) { return nil, nil }}, {[]string{"two", "four"}, func(_ ...Option) (Pusher, error) { return nil, nil }},
} }
if _, err := ps.ByScheme("one"); err != nil { _, err := ps.ByScheme("one")
t.Error(err) require.NoError(t, err)
} _, err = ps.ByScheme("four")
if _, err := ps.ByScheme("four"); err != nil { require.NoError(t, err)
t.Error(err)
}
if _, err := ps.ByScheme("five"); err == nil { _, err = ps.ByScheme("five")
t.Error("Did not expect handler for five") assert.Error(t, err, "Did not expect handler for five")
}
} }
func TestAll(t *testing.T) { func TestAll(t *testing.T) {
env := cli.New() env := cli.New()
all := All(env) all := All(env)
if len(all) != 1 { assert.Len(t, all, 1, "expected 1 provider (OCI), got %d", len(all))
t.Errorf("expected 1 provider (OCI), got %d", len(all))
}
} }
func TestByScheme(t *testing.T) { func TestByScheme(t *testing.T) {
env := cli.New() env := cli.New()
g := All(env) g := All(env)
if _, err := g.ByScheme(registry.OCIScheme); err != nil { _, err := g.ByScheme(registry.OCIScheme)
t.Error(err) assert.NoError(t, err)
}
} }

@ -38,15 +38,13 @@ func (suite *InsecureTLSRegistryClientTestSuite) TearDownSuite() {
} }
func (suite *InsecureTLSRegistryClientTestSuite) Test_0_Login() { func (suite *InsecureTLSRegistryClientTestSuite) Test_0_Login() {
err := suite.RegistryClient.Login(suite.DockerRegistryHost, suite.Require().Error(suite.RegistryClient.Login(suite.DockerRegistryHost,
LoginOptBasicAuth("badverybad", "ohsobad"), LoginOptBasicAuth("badverybad", "ohsobad"),
LoginOptInsecure(true)) LoginOptInsecure(true)), "error logging into registry with bad credentials")
suite.Require().Error(err, "error logging into registry with bad credentials")
err = suite.RegistryClient.Login(suite.DockerRegistryHost, suite.Require().NoError(suite.RegistryClient.Login(suite.DockerRegistryHost,
LoginOptBasicAuth(testUsername, testPassword), LoginOptBasicAuth(testUsername, testPassword),
LoginOptInsecure(true)) LoginOptInsecure(true)), "no error logging into registry with good credentials")
suite.Require().NoError(err, "no error logging into registry with good credentials")
} }
func (suite *InsecureTLSRegistryClientTestSuite) Test_1_Push() { func (suite *InsecureTLSRegistryClientTestSuite) Test_1_Push() {
@ -68,8 +66,7 @@ func (suite *InsecureTLSRegistryClientTestSuite) Test_4_Logout() {
suite.Require().Error(err, "failed to delete the credential for this-host-aint-real:5000") suite.Require().Error(err, "failed to delete the credential for this-host-aint-real:5000")
} }
err = suite.RegistryClient.Logout(suite.DockerRegistryHost) suite.Require().NoError(suite.RegistryClient.Logout(suite.DockerRegistryHost), "no error logging out of registry")
suite.Require().NoError(err, "no error logging out of registry")
} }
func TestInsecureTLSRegistryClientTestSuite(t *testing.T) { func TestInsecureTLSRegistryClientTestSuite(t *testing.T) {

@ -170,12 +170,12 @@ func TestHookExecutionUnmarshalJSON(t *testing.T) {
err := json.Unmarshal([]byte(tt.input), &exec) err := json.Unmarshal([]byte(tt.input), &exec)
if tt.wantErr { if tt.wantErr {
assert.Error(t, err) assert.Error(t, err)
return } else {
require.NoError(t, err)
assert.Equal(t, tt.expected.StartedAt.Unix(), exec.StartedAt.Unix())
assert.Equal(t, tt.expected.CompletedAt.Unix(), exec.CompletedAt.Unix())
assert.Equal(t, tt.expected.Phase, exec.Phase)
} }
require.NoError(t, err)
assert.Equal(t, tt.expected.StartedAt.Unix(), exec.StartedAt.Unix())
assert.Equal(t, tt.expected.CompletedAt.Unix(), exec.CompletedAt.Unix())
assert.Equal(t, tt.expected.Phase, exec.Phase)
}) })
} }
} }
@ -194,9 +194,7 @@ func TestHookExecutionRoundTrip(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
var decoded HookExecution var decoded HookExecution
err = json.Unmarshal(data, &decoded) require.NoError(t, json.Unmarshal(data, &decoded))
require.NoError(t, err)
assert.Equal(t, original.StartedAt.Unix(), decoded.StartedAt.Unix()) assert.Equal(t, original.StartedAt.Unix(), decoded.StartedAt.Unix())
assert.Equal(t, original.CompletedAt.Unix(), decoded.CompletedAt.Unix()) assert.Equal(t, original.CompletedAt.Unix(), decoded.CompletedAt.Unix())
assert.Equal(t, original.Phase, decoded.Phase) assert.Equal(t, original.Phase, decoded.Phase)
@ -208,12 +206,11 @@ func TestHookExecutionEmptyStringRoundTrip(t *testing.T) {
input := `{"started_at":"","completed_at":"","phase":"Succeeded"}` input := `{"started_at":"","completed_at":"","phase":"Succeeded"}`
var exec HookExecution var exec HookExecution
err := json.Unmarshal([]byte(input), &exec) require.NoError(t, json.Unmarshal([]byte(input), &exec))
require.NoError(t, err)
// Verify time fields are zero values // Verify time fields are zero values
assert.True(t, exec.StartedAt.IsZero()) assert.Zero(t, exec.StartedAt)
assert.True(t, exec.CompletedAt.IsZero()) assert.Zero(t, exec.CompletedAt)
assert.Equal(t, HookPhaseSucceeded, exec.Phase) assert.Equal(t, HookPhaseSucceeded, exec.Phase)
// Marshal back and verify empty time fields are omitted // Marshal back and verify empty time fields are omitted
@ -221,8 +218,7 @@ func TestHookExecutionEmptyStringRoundTrip(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
var result map[string]any var result map[string]any
err = json.Unmarshal(data, &result) require.NoError(t, json.Unmarshal(data, &result))
require.NoError(t, err)
// Zero time values should be omitted // Zero time values should be omitted
assert.NotContains(t, result, "started_at") assert.NotContains(t, result, "started_at")

@ -24,6 +24,7 @@ import (
sqlmock "github.com/DATA-DOG/go-sqlmock" sqlmock "github.com/DATA-DOG/go-sqlmock"
sq "github.com/Masterminds/squirrel" sq "github.com/Masterminds/squirrel"
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/stretchr/testify/require"
v1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors" apierrors "k8s.io/apimachinery/pkg/api/errors"
@ -74,10 +75,7 @@ func tsFixtureMemory(t *testing.T) *Memory {
mem := NewMemory() mem := NewMemory()
for _, tt := range hs { for _, tt := range hs {
err := mem.Create(testKey(tt.Name, tt.Version), tt) require.NoError(t, mem.Create(testKey(tt.Name, tt.Version), tt), "Test setup failed to create")
if err != nil {
t.Fatalf("Test setup failed to create: %s\n", err)
}
} }
return mem return mem
} }
@ -108,9 +106,7 @@ func (mock *MockConfigMapsInterface) Init(t *testing.T, releases ...*rspb.Releas
objkey := testKey(rls.Name, rls.Version) objkey := testKey(rls.Name, rls.Version)
cfgmap, err := newConfigMapsObject(objkey, rls, nil) cfgmap, err := newConfigMapsObject(objkey, rls, nil)
if err != nil { require.NoError(t, err, "Failed to create configmap")
t.Fatalf("Failed to create configmap: %s", err)
}
mock.objects[objkey] = cfgmap mock.objects[objkey] = cfgmap
} }
} }
@ -196,9 +192,7 @@ func (mock *MockSecretsInterface) Init(t *testing.T, releases ...*rspb.Release)
objkey := testKey(rls.Name, rls.Version) objkey := testKey(rls.Name, rls.Version)
secret, err := newSecretsObject(objkey, rls, nil) secret, err := newSecretsObject(objkey, rls, nil)
if err != nil { require.NoError(t, err, "Failed to create secret")
t.Fatalf("Failed to create secret: %s", err)
}
mock.objects[objkey] = secret mock.objects[objkey] = secret
} }
} }
@ -262,9 +256,7 @@ func (mock *MockSecretsInterface) Delete(_ context.Context, name string, _ metav
func newTestFixtureSQL(t *testing.T, _ ...*rspb.Release) (*SQL, sqlmock.Sqlmock) { func newTestFixtureSQL(t *testing.T, _ ...*rspb.Release) (*SQL, sqlmock.Sqlmock) {
t.Helper() t.Helper()
sqlDB, mock, err := sqlmock.New() sqlDB, mock, err := sqlmock.New()
if err != nil { require.NoError(t, err, "error when opening stub database connection")
t.Fatalf("error when opening stub database connection: %v", err)
}
sqlxDB := sqlx.NewDb(sqlDB, "sqlmock") sqlxDB := sqlx.NewDb(sqlDB, "sqlmock")
return &SQL{ return &SQL{

@ -16,12 +16,13 @@ package driver
import ( import (
"reflect" "reflect"
"testing" "testing"
"github.com/stretchr/testify/assert"
) )
func TestGetSystemLabel(t *testing.T) { func TestGetSystemLabel(t *testing.T) {
if output := GetSystemLabels(); !reflect.DeepEqual(systemLabels, output) { output := GetSystemLabels()
t.Errorf("Expected {%v}, got {%v}", systemLabels, output) assert.Truef(t, reflect.DeepEqual(systemLabels, output), "Expected {%v}, got {%v}", systemLabels, output)
}
} }
func TestIsSystemLabel(t *testing.T) { func TestIsSystemLabel(t *testing.T) {
@ -32,9 +33,8 @@ func TestIsSystemLabel(t *testing.T) {
"NaMe": false, "NaMe": false,
} }
for label, result := range tests { for label, result := range tests {
if output := isSystemLabel(label); output != result { output := isSystemLabel(label)
t.Errorf("Output %t not equal to expected %t", output, result) assert.Equalf(t, output, result, "Output %t not equal to expected %t", output, result)
}
} }
} }
@ -68,9 +68,8 @@ func TestFilterSystemLabels(t *testing.T) {
}}, }},
} }
for _, test := range tests { for _, test := range tests {
if output := filterSystemLabels(test[0]); !reflect.DeepEqual(test[1], output) { output := filterSystemLabels(test[0])
t.Errorf("Expected {%v}, got {%v}", test[1], output) assert.Truef(t, reflect.DeepEqual(test[1], output), "Expected {%v}, got {%v}", test[1], output)
}
} }
} }
@ -101,8 +100,7 @@ func TestContainsSystemLabels(t *testing.T) {
}, false}, }, false},
} }
for _, test := range tests { for _, test := range tests {
if output := ContainsSystemLabels(test.input); !reflect.DeepEqual(test.output, output) { output := ContainsSystemLabels(test.input)
t.Errorf("Expected {%v}, got {%v}", test.output, output) assert.Truef(t, reflect.DeepEqual(test.output, output), "Expected {%v}, got {%v}", test.output, output)
}
} }
} }

Loading…
Cancel
Save