From 157f0ba10af6f237e70698c3c10cc0e8a1e433e4 Mon Sep 17 00:00:00 2001 From: Matthieu MOREL Date: Fri, 16 May 2025 09:55:50 +0200 Subject: [PATCH] chore: enable thelper Signed-off-by: Matthieu MOREL --- .golangci.yml | 1 + internal/sympath/walk_test.go | 2 ++ internal/test/ensure/ensure.go | 1 + internal/third_party/dep/fs/fs_test.go | 1 + internal/tlsutil/tls_test.go | 5 +++-- pkg/action/action_test.go | 1 + pkg/action/hooks_test.go | 2 ++ pkg/action/install_test.go | 1 + pkg/action/list_test.go | 27 +++++++++++++------------- pkg/action/uninstall_test.go | 1 + pkg/action/upgrade_test.go | 1 + pkg/chart/v2/loader/archive_test.go | 2 ++ pkg/chart/v2/loader/load_test.go | 5 +++++ pkg/chart/v2/util/chartfile_test.go | 2 +- pkg/chart/v2/util/dependencies_test.go | 1 + pkg/chart/v2/util/values_test.go | 1 + pkg/cmd/completion_test.go | 2 ++ pkg/cmd/dependency_update_test.go | 1 + pkg/cmd/flags_test.go | 1 + pkg/cmd/history_test.go | 1 + pkg/cmd/plugin_test.go | 1 + pkg/cmd/repo_add_test.go | 1 + pkg/cmd/repo_remove_test.go | 1 + pkg/cmd/require/args_test.go | 1 + pkg/cmd/upgrade_test.go | 22 +++++++++++---------- pkg/downloader/manager_test.go | 1 + pkg/getter/httpgetter_test.go | 1 + pkg/kube/client_test.go | 2 ++ pkg/kube/statuswait_test.go | 3 +++ pkg/registry/reference_test.go | 1 + pkg/release/util/sorter_test.go | 1 + pkg/repo/index_test.go | 2 ++ pkg/repo/repotest/server.go | 6 +++++- pkg/repo/repotest/tlsconfig.go | 1 + pkg/storage/driver/mock_test.go | 6 ++++++ pkg/time/time_test.go | 1 + 36 files changed, 83 insertions(+), 27 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index fb62b2ee2..a1deb3aeb 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -26,6 +26,7 @@ linters: - nakedret - revive - staticcheck + - thelper - unused - usestdlibvars diff --git a/internal/sympath/walk_test.go b/internal/sympath/walk_test.go index d4e2ceeaa..1eba8b996 100644 --- a/internal/sympath/walk_test.go +++ b/internal/sympath/walk_test.go @@ -76,6 +76,7 @@ func walkTree(n *Node, path string, f func(path string, n *Node)) { } func makeTree(t *testing.T) { + t.Helper() walkTree(tree, tree.name, func(path string, n *Node) { if n.entries == nil { if n.symLinkedTo != "" { @@ -99,6 +100,7 @@ func makeTree(t *testing.T) { } func checkMarks(t *testing.T, report bool) { + t.Helper() walkTree(tree, tree.name, func(path string, n *Node) { if n.marks != n.expectedMarks && report { t.Errorf("node %s mark = %d; expected %d", path, n.marks, n.expectedMarks) diff --git a/internal/test/ensure/ensure.go b/internal/test/ensure/ensure.go index 0d8dd9abc..c131e6da5 100644 --- a/internal/test/ensure/ensure.go +++ b/internal/test/ensure/ensure.go @@ -46,6 +46,7 @@ func HelmHome(t *testing.T) { // tempdir := TempFile(t, "foo", []byte("bar")) // filename := filepath.Join(tempdir, "foo") func TempFile(t *testing.T, name string, data []byte) string { + t.Helper() path := t.TempDir() filename := filepath.Join(path, name) if err := os.WriteFile(filename, data, 0755); err != nil { diff --git a/internal/third_party/dep/fs/fs_test.go b/internal/third_party/dep/fs/fs_test.go index 22c59868c..4c59d17fe 100644 --- a/internal/third_party/dep/fs/fs_test.go +++ b/internal/third_party/dep/fs/fs_test.go @@ -457,6 +457,7 @@ func TestCopyFileFail(t *testing.T) { // files this function creates. It is the caller's responsibility to call // this function before the test is done running, whether there's an error or not. func setupInaccessibleDir(t *testing.T, op func(dir string) error) func() { + t.Helper() dir := t.TempDir() subdir := filepath.Join(dir, "dir") diff --git a/internal/tlsutil/tls_test.go b/internal/tlsutil/tls_test.go index eb1cc183e..3d7e75c86 100644 --- a/internal/tlsutil/tls_test.go +++ b/internal/tlsutil/tls_test.go @@ -30,8 +30,9 @@ const ( ) func testfile(t *testing.T, file string) (path string) { - var err error - if path, err = filepath.Abs(filepath.Join(tlsTestDir, file)); err != nil { + t.Helper() + path, err := filepath.Abs(filepath.Join(tlsTestDir, file)) + if err != nil { t.Fatalf("error getting absolute path to test file %q: %v", file, err) } return path diff --git a/pkg/action/action_test.go b/pkg/action/action_test.go index f808163fb..9436abef5 100644 --- a/pkg/action/action_test.go +++ b/pkg/action/action_test.go @@ -40,6 +40,7 @@ import ( var verbose = flag.Bool("test.log", false, "enable test logging (debug by default)") func actionConfigFixture(t *testing.T) *Configuration { + t.Helper() return actionConfigFixtureWithDummyResources(t, nil) } diff --git a/pkg/action/hooks_test.go b/pkg/action/hooks_test.go index 9ca42ec6a..ad1de2c59 100644 --- a/pkg/action/hooks_test.go +++ b/pkg/action/hooks_test.go @@ -167,6 +167,7 @@ func TestInstallRelease_HooksOutputLogsOnSuccessAndFailure(t *testing.T) { } func runInstallForHooksWithSuccess(t *testing.T, manifest, expectedNamespace string, shouldOutput bool) { + t.Helper() var expectedOutput string if shouldOutput { expectedOutput = fmt.Sprintf("attempted to output logs for namespace: %s", expectedNamespace) @@ -190,6 +191,7 @@ func runInstallForHooksWithSuccess(t *testing.T, manifest, expectedNamespace str } func runInstallForHooksWithFailure(t *testing.T, manifest, expectedNamespace string, shouldOutput bool) { + t.Helper() var expectedOutput string if shouldOutput { expectedOutput = fmt.Sprintf("attempted to output logs for namespace: %s", expectedNamespace) diff --git a/pkg/action/install_test.go b/pkg/action/install_test.go index e39674c80..dabd57b22 100644 --- a/pkg/action/install_test.go +++ b/pkg/action/install_test.go @@ -116,6 +116,7 @@ func installActionWithConfig(config *Configuration) *Install { } func installAction(t *testing.T) *Install { + t.Helper() config := actionConfigFixture(t) instAction := NewInstall(config) instAction.Namespace = "spaced" diff --git a/pkg/action/list_test.go b/pkg/action/list_test.go index e41949310..b6f89fa1e 100644 --- a/pkg/action/list_test.go +++ b/pkg/action/list_test.go @@ -64,13 +64,14 @@ func TestList_Empty(t *testing.T) { } func newListFixture(t *testing.T) *List { + t.Helper() return NewList(actionConfigFixture(t)) } func TestList_OneNamespace(t *testing.T) { is := assert.New(t) lister := newListFixture(t) - makeMeSomeReleases(lister.cfg.Releases, t) + makeMeSomeReleases(t, lister.cfg.Releases) list, err := lister.Run() is.NoError(err) is.Len(list, 3) @@ -79,7 +80,7 @@ func TestList_OneNamespace(t *testing.T) { func TestList_AllNamespaces(t *testing.T) { is := assert.New(t) lister := newListFixture(t) - makeMeSomeReleases(lister.cfg.Releases, t) + makeMeSomeReleases(t, lister.cfg.Releases) lister.AllNamespaces = true lister.SetStateMask() list, err := lister.Run() @@ -91,7 +92,7 @@ func TestList_Sort(t *testing.T) { is := assert.New(t) lister := newListFixture(t) lister.Sort = ByNameDesc // Other sorts are tested elsewhere - makeMeSomeReleases(lister.cfg.Releases, t) + makeMeSomeReleases(t, lister.cfg.Releases) list, err := lister.Run() is.NoError(err) is.Len(list, 3) @@ -104,7 +105,7 @@ func TestList_Limit(t *testing.T) { is := assert.New(t) lister := newListFixture(t) lister.Limit = 2 - makeMeSomeReleases(lister.cfg.Releases, t) + makeMeSomeReleases(t, lister.cfg.Releases) list, err := lister.Run() is.NoError(err) is.Len(list, 2) @@ -117,7 +118,7 @@ func TestList_BigLimit(t *testing.T) { is := assert.New(t) lister := newListFixture(t) lister.Limit = 20 - makeMeSomeReleases(lister.cfg.Releases, t) + makeMeSomeReleases(t, lister.cfg.Releases) list, err := lister.Run() is.NoError(err) is.Len(list, 3) @@ -133,7 +134,7 @@ func TestList_LimitOffset(t *testing.T) { lister := newListFixture(t) lister.Limit = 2 lister.Offset = 1 - makeMeSomeReleases(lister.cfg.Releases, t) + makeMeSomeReleases(t, lister.cfg.Releases) list, err := lister.Run() is.NoError(err) is.Len(list, 2) @@ -148,7 +149,7 @@ func TestList_LimitOffsetOutOfBounds(t *testing.T) { lister := newListFixture(t) lister.Limit = 2 lister.Offset = 3 // Last item is index 2 - makeMeSomeReleases(lister.cfg.Releases, t) + makeMeSomeReleases(t, lister.cfg.Releases) list, err := lister.Run() is.NoError(err) is.Len(list, 0) @@ -163,7 +164,7 @@ func TestList_LimitOffsetOutOfBounds(t *testing.T) { func TestList_StateMask(t *testing.T) { is := assert.New(t) lister := newListFixture(t) - makeMeSomeReleases(lister.cfg.Releases, t) + makeMeSomeReleases(t, lister.cfg.Releases) one, err := lister.cfg.Releases.Get("one", 1) is.NoError(err) one.SetStatus(release.StatusUninstalled, "uninstalled") @@ -193,7 +194,7 @@ func TestList_StateMaskWithStaleRevisions(t *testing.T) { lister := newListFixture(t) lister.StateMask = ListFailed - makeMeSomeReleasesWithStaleFailure(lister.cfg.Releases, t) + makeMeSomeReleasesWithStaleFailure(t, lister.cfg.Releases) res, err := lister.Run() @@ -205,7 +206,7 @@ func TestList_StateMaskWithStaleRevisions(t *testing.T) { is.Equal("failed", res[0].Name) } -func makeMeSomeReleasesWithStaleFailure(store *storage.Storage, t *testing.T) { +func makeMeSomeReleasesWithStaleFailure(t *testing.T, store *storage.Storage) { t.Helper() one := namedReleaseStub("clean", release.StatusDeployed) one.Namespace = "default" @@ -242,7 +243,7 @@ func TestList_Filter(t *testing.T) { is := assert.New(t) lister := newListFixture(t) lister.Filter = "th." - makeMeSomeReleases(lister.cfg.Releases, t) + makeMeSomeReleases(t, lister.cfg.Releases) res, err := lister.Run() is.NoError(err) @@ -254,13 +255,13 @@ func TestList_FilterFailsCompile(t *testing.T) { is := assert.New(t) lister := newListFixture(t) lister.Filter = "t[h.{{{" - makeMeSomeReleases(lister.cfg.Releases, t) + makeMeSomeReleases(t, lister.cfg.Releases) _, err := lister.Run() is.Error(err) } -func makeMeSomeReleases(store *storage.Storage, t *testing.T) { +func makeMeSomeReleases(t *testing.T, store *storage.Storage) { t.Helper() one := releaseStub() one.Name = "one" diff --git a/pkg/action/uninstall_test.go b/pkg/action/uninstall_test.go index a83e4bc75..8b148522c 100644 --- a/pkg/action/uninstall_test.go +++ b/pkg/action/uninstall_test.go @@ -28,6 +28,7 @@ import ( ) func uninstallAction(t *testing.T) *Uninstall { + t.Helper() config := actionConfigFixture(t) unAction := NewUninstall(config) return unAction diff --git a/pkg/action/upgrade_test.go b/pkg/action/upgrade_test.go index 19869f6d6..4476bc44d 100644 --- a/pkg/action/upgrade_test.go +++ b/pkg/action/upgrade_test.go @@ -36,6 +36,7 @@ import ( ) func upgradeAction(t *testing.T) *Upgrade { + t.Helper() config := actionConfigFixture(t) upAction := NewUpgrade(config) upAction.Namespace = "spaced" diff --git a/pkg/chart/v2/loader/archive_test.go b/pkg/chart/v2/loader/archive_test.go index 4d6db9ed4..d16c47563 100644 --- a/pkg/chart/v2/loader/archive_test.go +++ b/pkg/chart/v2/loader/archive_test.go @@ -33,6 +33,7 @@ func TestLoadArchiveFiles(t *testing.T) { name: "empty input should return no files", generate: func(_ *tar.Writer) {}, check: func(t *testing.T, _ []*BufferedFile, err error) { + t.Helper() if err.Error() != "no files in chart archive" { t.Fatalf(`expected "no files in chart archive", got [%#v]`, err) } @@ -61,6 +62,7 @@ func TestLoadArchiveFiles(t *testing.T) { } }, check: func(t *testing.T, files []*BufferedFile, err error) { + t.Helper() if err != nil { t.Fatalf(`got unwanted error [%#v] for tar file with pax_global_header content`, err) } diff --git a/pkg/chart/v2/loader/load_test.go b/pkg/chart/v2/loader/load_test.go index 2e16b8560..41154421c 100644 --- a/pkg/chart/v2/loader/load_test.go +++ b/pkg/chart/v2/loader/load_test.go @@ -648,6 +648,7 @@ func verifyChart(t *testing.T, c *chart.Chart) { } func verifyDependencies(t *testing.T, c *chart.Chart) { + t.Helper() if len(c.Metadata.Dependencies) != 2 { t.Errorf("Expected 2 dependencies, got %d", len(c.Metadata.Dependencies)) } @@ -670,6 +671,7 @@ func verifyDependencies(t *testing.T, c *chart.Chart) { } func verifyDependenciesLock(t *testing.T, c *chart.Chart) { + t.Helper() if len(c.Metadata.Dependencies) != 2 { t.Errorf("Expected 2 dependencies, got %d", len(c.Metadata.Dependencies)) } @@ -692,10 +694,12 @@ func verifyDependenciesLock(t *testing.T, c *chart.Chart) { } func verifyFrobnitz(t *testing.T, c *chart.Chart) { + t.Helper() verifyChartFileAndTemplate(t, c, "frobnitz") } func verifyChartFileAndTemplate(t *testing.T, c *chart.Chart, name string) { + t.Helper() if c.Metadata == nil { t.Fatal("Metadata is nil") } @@ -750,6 +754,7 @@ func verifyChartFileAndTemplate(t *testing.T, c *chart.Chart, name string) { } func verifyBomStripped(t *testing.T, files []*chart.File) { + t.Helper() for _, file := range files { if bytes.HasPrefix(file.Data, utf8bom) { t.Errorf("Byte Order Mark still present in processed file %s", file.Name) diff --git a/pkg/chart/v2/util/chartfile_test.go b/pkg/chart/v2/util/chartfile_test.go index a2896b235..00c530b8a 100644 --- a/pkg/chart/v2/util/chartfile_test.go +++ b/pkg/chart/v2/util/chartfile_test.go @@ -34,7 +34,7 @@ func TestLoadChartfile(t *testing.T) { } func verifyChartfile(t *testing.T, f *chart.Metadata, name string) { - + t.Helper() if f == nil { //nolint:staticcheck t.Fatal("Failed verifyChartfile because f is nil") } diff --git a/pkg/chart/v2/util/dependencies_test.go b/pkg/chart/v2/util/dependencies_test.go index 9b7fe3bef..07b2441e2 100644 --- a/pkg/chart/v2/util/dependencies_test.go +++ b/pkg/chart/v2/util/dependencies_test.go @@ -558,6 +558,7 @@ func TestDependentChartsWithSomeSubchartsSpecifiedInDependency(t *testing.T) { } func validateDependencyTree(t *testing.T, c *chart.Chart) { + t.Helper() for _, dependency := range c.Dependencies() { if dependency.Parent() != c { if dependency.Parent() != c { diff --git a/pkg/chart/v2/util/values_test.go b/pkg/chart/v2/util/values_test.go index 6a5400f78..1a25fafb8 100644 --- a/pkg/chart/v2/util/values_test.go +++ b/pkg/chart/v2/util/values_test.go @@ -224,6 +224,7 @@ chapter: } func matchValues(t *testing.T, data map[string]interface{}) { + t.Helper() if data["poet"] != "Coleridge" { t.Errorf("Unexpected poet: %s", data["poet"]) } diff --git a/pkg/cmd/completion_test.go b/pkg/cmd/completion_test.go index 872da25f3..375a9a97d 100644 --- a/pkg/cmd/completion_test.go +++ b/pkg/cmd/completion_test.go @@ -27,6 +27,7 @@ import ( // Check if file completion should be performed according to parameter 'shouldBePerformed' func checkFileCompletion(t *testing.T, cmdName string, shouldBePerformed bool) { + t.Helper() storage := storageFixture() storage.Create(&release.Release{ Name: "myrelease", @@ -64,6 +65,7 @@ func TestCompletionFileCompletion(t *testing.T) { } func checkReleaseCompletion(t *testing.T, cmdName string, multiReleasesAllowed bool) { + t.Helper() multiReleaseTestGolden := "output/empty_nofile_comp.txt" if multiReleasesAllowed { multiReleaseTestGolden = "output/release_list_repeat_comp.txt" diff --git a/pkg/cmd/dependency_update_test.go b/pkg/cmd/dependency_update_test.go index a450d4b22..9646c6816 100644 --- a/pkg/cmd/dependency_update_test.go +++ b/pkg/cmd/dependency_update_test.go @@ -250,6 +250,7 @@ func TestDependencyUpdateCmd_WithRepoThatWasNotAdded(t *testing.T) { } func setupMockRepoServer(t *testing.T) *repotest.Server { + t.Helper() srv := repotest.NewTempServer( t, repotest.WithChartSourceGlob("testdata/testcharts/*.tgz"), diff --git a/pkg/cmd/flags_test.go b/pkg/cmd/flags_test.go index 9d416f216..cbc2e6419 100644 --- a/pkg/cmd/flags_test.go +++ b/pkg/cmd/flags_test.go @@ -29,6 +29,7 @@ import ( ) func outputFlagCompletionTest(t *testing.T, cmdName string) { + t.Helper() releasesMockWithStatus := func(info *release.Info, hooks ...*release.Hook) []*release.Release { info.LastDeployed = helmtime.Unix(1452902400, 0).UTC() return []*release.Release{{ diff --git a/pkg/cmd/history_test.go b/pkg/cmd/history_test.go index 594d93d21..d26ed9ecf 100644 --- a/pkg/cmd/history_test.go +++ b/pkg/cmd/history_test.go @@ -75,6 +75,7 @@ func TestHistoryOutputCompletion(t *testing.T) { } func revisionFlagCompletionTest(t *testing.T, cmdName string) { + t.Helper() mk := func(name string, vers int, status release.Status) *release.Release { return release.Mock(&release.MockReleaseOptions{ Name: name, diff --git a/pkg/cmd/plugin_test.go b/pkg/cmd/plugin_test.go index 7c36698b1..bc0f7de48 100644 --- a/pkg/cmd/plugin_test.go +++ b/pkg/cmd/plugin_test.go @@ -276,6 +276,7 @@ func TestLoadPluginsForCompletion(t *testing.T) { } func checkCommand(t *testing.T, plugins []*cobra.Command, tests []staticCompletionDetails) { + t.Helper() if len(plugins) != len(tests) { t.Fatalf("Expected commands %v, got %v", tests, plugins) } diff --git a/pkg/cmd/repo_add_test.go b/pkg/cmd/repo_add_test.go index 05b5ee53e..cfa610611 100644 --- a/pkg/cmd/repo_add_test.go +++ b/pkg/cmd/repo_add_test.go @@ -191,6 +191,7 @@ func TestRepoAddConcurrentHiddenFile(t *testing.T) { } func repoAddConcurrent(t *testing.T, testName, repoFile string) { + t.Helper() ts := repotest.NewTempServer( t, repotest.WithChartSourceGlob("testdata/testserver/*.*"), diff --git a/pkg/cmd/repo_remove_test.go b/pkg/cmd/repo_remove_test.go index b8bc7179a..bd8757812 100644 --- a/pkg/cmd/repo_remove_test.go +++ b/pkg/cmd/repo_remove_test.go @@ -153,6 +153,7 @@ func createCacheFiles(rootDir string, repoName string) (cacheIndexFile string, c } func testCacheFiles(t *testing.T, cacheIndexFile string, cacheChartsFile string, repoName string) { + t.Helper() if _, err := os.Stat(cacheIndexFile); err == nil { t.Errorf("Error cache index file was not removed for repository %s", repoName) } diff --git a/pkg/cmd/require/args_test.go b/pkg/cmd/require/args_test.go index cd5850650..b6c430fc0 100644 --- a/pkg/cmd/require/args_test.go +++ b/pkg/cmd/require/args_test.go @@ -63,6 +63,7 @@ type testCase struct { } func runTestCases(t *testing.T, testCases []testCase) { + t.Helper() for i, tc := range testCases { t.Run(fmt.Sprint(i), func(t *testing.T) { cmd := &cobra.Command{ diff --git a/pkg/cmd/upgrade_test.go b/pkg/cmd/upgrade_test.go index 8a840f149..d7375dcad 100644 --- a/pkg/cmd/upgrade_test.go +++ b/pkg/cmd/upgrade_test.go @@ -193,7 +193,7 @@ func TestUpgradeCmd(t *testing.T) { func TestUpgradeWithValue(t *testing.T) { releaseName := "funny-bunny-v2" - relMock, ch, chartPath := prepareMockRelease(releaseName, t) + relMock, ch, chartPath := prepareMockRelease(t, releaseName) defer resetEnv()() @@ -220,7 +220,7 @@ func TestUpgradeWithValue(t *testing.T) { func TestUpgradeWithStringValue(t *testing.T) { releaseName := "funny-bunny-v3" - relMock, ch, chartPath := prepareMockRelease(releaseName, t) + relMock, ch, chartPath := prepareMockRelease(t, releaseName) defer resetEnv()() @@ -248,7 +248,7 @@ func TestUpgradeWithStringValue(t *testing.T) { func TestUpgradeInstallWithSubchartNotes(t *testing.T) { releaseName := "wacky-bunny-v1" - relMock, ch, _ := prepareMockRelease(releaseName, t) + relMock, ch, _ := prepareMockRelease(t, releaseName) defer resetEnv()() @@ -280,7 +280,7 @@ func TestUpgradeInstallWithSubchartNotes(t *testing.T) { func TestUpgradeWithValuesFile(t *testing.T) { releaseName := "funny-bunny-v4" - relMock, ch, chartPath := prepareMockRelease(releaseName, t) + relMock, ch, chartPath := prepareMockRelease(t, releaseName) defer resetEnv()() @@ -308,7 +308,7 @@ func TestUpgradeWithValuesFile(t *testing.T) { func TestUpgradeWithValuesFromStdin(t *testing.T) { releaseName := "funny-bunny-v5" - relMock, ch, chartPath := prepareMockRelease(releaseName, t) + relMock, ch, chartPath := prepareMockRelease(t, releaseName) defer resetEnv()() @@ -340,7 +340,7 @@ func TestUpgradeWithValuesFromStdin(t *testing.T) { func TestUpgradeInstallWithValuesFromStdin(t *testing.T) { releaseName := "funny-bunny-v6" - _, _, chartPath := prepareMockRelease(releaseName, t) + _, _, chartPath := prepareMockRelease(t, releaseName) defer resetEnv()() @@ -368,7 +368,8 @@ func TestUpgradeInstallWithValuesFromStdin(t *testing.T) { } -func prepareMockRelease(releaseName string, t *testing.T) (func(n string, v int, ch *chart.Chart) *release.Release, *chart.Chart, string) { +func prepareMockRelease(t *testing.T, releaseName string) (func(n string, v int, ch *chart.Chart) *release.Release, *chart.Chart, string) { + t.Helper() tmpChart := t.TempDir() configmapData, err := os.ReadFile("testdata/testcharts/upgradetest/templates/configmap.yaml") if err != nil { @@ -445,7 +446,7 @@ func TestUpgradeFileCompletion(t *testing.T) { func TestUpgradeInstallWithLabels(t *testing.T) { releaseName := "funny-bunny-labels" - _, _, chartPath := prepareMockRelease(releaseName, t) + _, _, chartPath := prepareMockRelease(t, releaseName) defer resetEnv()() @@ -471,7 +472,8 @@ func TestUpgradeInstallWithLabels(t *testing.T) { } } -func prepareMockReleaseWithSecret(releaseName string, t *testing.T) (func(n string, v int, ch *chart.Chart) *release.Release, *chart.Chart, string) { +func prepareMockReleaseWithSecret(t *testing.T, releaseName string) (func(n string, v int, ch *chart.Chart) *release.Release, *chart.Chart, string) { + t.Helper() tmpChart := t.TempDir() configmapData, err := os.ReadFile("testdata/testcharts/chart-with-secret/templates/configmap.yaml") if err != nil { @@ -512,7 +514,7 @@ func prepareMockReleaseWithSecret(releaseName string, t *testing.T) (func(n stri func TestUpgradeWithDryRun(t *testing.T) { releaseName := "funny-bunny-labels" - _, _, chartPath := prepareMockReleaseWithSecret(releaseName, t) + _, _, chartPath := prepareMockReleaseWithSecret(t, releaseName) defer resetEnv()() diff --git a/pkg/downloader/manager_test.go b/pkg/downloader/manager_test.go index fecc8fbef..a6434b68e 100644 --- a/pkg/downloader/manager_test.go +++ b/pkg/downloader/manager_test.go @@ -437,6 +437,7 @@ func TestUpdateWithNoRepo(t *testing.T) { // Parent chart includes local-subchart 0.1.0 subchart from a fake repository, by default. // If each of these main fields (name, version, repository) is not supplied by dep param, default value will be used. func checkBuildWithOptionalFields(t *testing.T, chartName string, dep chart.Dependency) { + t.Helper() // Set up a fake repo srv := repotest.NewTempServer( t, diff --git a/pkg/getter/httpgetter_test.go b/pkg/getter/httpgetter_test.go index 510fffd13..a997c7f03 100644 --- a/pkg/getter/httpgetter_test.go +++ b/pkg/getter/httpgetter_test.go @@ -576,6 +576,7 @@ func TestHttpClientInsecureSkipVerify(t *testing.T) { } func verifyInsecureSkipVerify(t *testing.T, g *HTTPGetter, caseName string, expectedValue bool) *http.Transport { + t.Helper() returnVal, err := g.httpClient() if err != nil { diff --git a/pkg/kube/client_test.go b/pkg/kube/client_test.go index f17436a80..cd83a7f9e 100644 --- a/pkg/kube/client_test.go +++ b/pkg/kube/client_test.go @@ -109,6 +109,7 @@ func newResponseJSON(code int, json []byte) (*http.Response, error) { } func newTestClient(t *testing.T) *Client { + t.Helper() testFactory := cmdtesting.NewTestFactory() t.Cleanup(testFactory.Cleanup) @@ -215,6 +216,7 @@ func TestCreate(t *testing.T) { } func testUpdate(t *testing.T, threeWayMerge bool) { + t.Helper() listA := newPodList("starfish", "otter", "squid") listB := newPodList("starfish", "otter", "dolphin") listC := newPodList("starfish", "otter", "dolphin") diff --git a/pkg/kube/statuswait_test.go b/pkg/kube/statuswait_test.go index 0b309b22d..4b06da896 100644 --- a/pkg/kube/statuswait_test.go +++ b/pkg/kube/statuswait_test.go @@ -154,6 +154,7 @@ spec: ` func getGVR(t *testing.T, mapper meta.RESTMapper, obj *unstructured.Unstructured) schema.GroupVersionResource { + t.Helper() gvk := obj.GroupVersionKind() mapping, err := mapper.RESTMapping(gvk.GroupKind(), gvk.Version) require.NoError(t, err) @@ -161,6 +162,7 @@ func getGVR(t *testing.T, mapper meta.RESTMapper, obj *unstructured.Unstructured } func getRuntimeObjFromManifests(t *testing.T, manifests []string) []runtime.Object { + t.Helper() objects := []runtime.Object{} for _, manifest := range manifests { m := make(map[string]interface{}) @@ -173,6 +175,7 @@ func getRuntimeObjFromManifests(t *testing.T, manifests []string) []runtime.Obje } func getResourceListFromRuntimeObjs(t *testing.T, c *Client, objs []runtime.Object) ResourceList { + t.Helper() resourceList := ResourceList{} for _, obj := range objs { list, err := c.Build(objBody(obj), false) diff --git a/pkg/registry/reference_test.go b/pkg/registry/reference_test.go index 31317d18f..b6872cc37 100644 --- a/pkg/registry/reference_test.go +++ b/pkg/registry/reference_test.go @@ -19,6 +19,7 @@ package registry import "testing" func verify(t *testing.T, actual reference, registry, repository, tag, digest string) { + t.Helper() if registry != actual.orasReference.Registry { t.Errorf("Oras reference registry expected %v actual %v", registry, actual.Registry) } diff --git a/pkg/release/util/sorter_test.go b/pkg/release/util/sorter_test.go index 8a766efc9..7ca540441 100644 --- a/pkg/release/util/sorter_test.go +++ b/pkg/release/util/sorter_test.go @@ -43,6 +43,7 @@ func tsRelease(name string, vers int, dur time.Duration, status rspb.Status) *rs } func check(t *testing.T, by string, fn func(int, int) bool) { + t.Helper() for i := len(releases) - 1; i > 0; i-- { if fn(i, i-1) { t.Errorf("release at positions '(%d,%d)' not sorted by %s", i-1, i, by) diff --git a/pkg/repo/index_test.go b/pkg/repo/index_test.go index 2a33cd1a9..d40719b12 100644 --- a/pkg/repo/index_test.go +++ b/pkg/repo/index_test.go @@ -352,6 +352,7 @@ func TestDownloadIndexFile(t *testing.T) { } func verifyLocalIndex(t *testing.T, i *IndexFile) { + t.Helper() numEntries := len(i.Entries) if numEntries != 3 { t.Errorf("Expected 3 entries in index file but got %d", numEntries) @@ -450,6 +451,7 @@ func verifyLocalIndex(t *testing.T, i *IndexFile) { } func verifyLocalChartsFile(t *testing.T, chartsContent []byte, indexContent *IndexFile) { + t.Helper() var expected, reald []string for chart := range indexContent.Entries { expected = append(expected, chart) diff --git a/pkg/repo/repotest/server.go b/pkg/repo/repotest/server.go index 709a6f5fd..b366572d8 100644 --- a/pkg/repo/repotest/server.go +++ b/pkg/repo/repotest/server.go @@ -42,6 +42,7 @@ import ( ) func BasicAuthMiddleware(t *testing.T) http.HandlerFunc { + t.Helper() return http.HandlerFunc(func(_ http.ResponseWriter, r *http.Request) { username, password, ok := r.BasicAuth() if !ok || username != "username" || password != "password" { @@ -89,7 +90,7 @@ type Server struct { // // The temp dir will be removed by testing package automatically when test finished. func NewTempServer(t *testing.T, options ...ServerOption) *Server { - + t.Helper() docrootTempDir, err := os.MkdirTemp("", "helm-repotest-") if err != nil { t.Fatal(err) @@ -110,6 +111,7 @@ func NewTempServer(t *testing.T, options ...ServerOption) *Server { // Create the server, but don't yet start it func newServer(t *testing.T, docroot string, options ...ServerOption) *Server { + t.Helper() absdocroot, err := filepath.Abs(docroot) if err != nil { t.Fatal(err) @@ -162,6 +164,7 @@ func WithDependingChart(c *chart.Chart) OCIServerOpt { } func NewOCIServer(t *testing.T, dir string) (*OCIServer, error) { + t.Helper() testHtpasswdFileBasename := "authtest.htpasswd" testUsername, testPassword := "username", "password" @@ -209,6 +212,7 @@ func NewOCIServer(t *testing.T, dir string) (*OCIServer, error) { } func (srv *OCIServer) Run(t *testing.T, opts ...OCIServerOpt) { + t.Helper() cfg := &OCIServerRunConfig{} for _, fn := range opts { fn(cfg) diff --git a/pkg/repo/repotest/tlsconfig.go b/pkg/repo/repotest/tlsconfig.go index 3914a4d3f..3ea7338ff 100644 --- a/pkg/repo/repotest/tlsconfig.go +++ b/pkg/repo/repotest/tlsconfig.go @@ -26,6 +26,7 @@ import ( ) func MakeTestTLSConfig(t *testing.T, path string) *tls.Config { + t.Helper() ca, pub, priv := filepath.Join(path, "rootca.crt"), filepath.Join(path, "crt.pem"), filepath.Join(path, "key.pem") insecure := false diff --git a/pkg/storage/driver/mock_test.go b/pkg/storage/driver/mock_test.go index 1dda258bb..7dba5fea2 100644 --- a/pkg/storage/driver/mock_test.go +++ b/pkg/storage/driver/mock_test.go @@ -52,6 +52,7 @@ func testKey(name string, vers int) string { } func tsFixtureMemory(t *testing.T) *Memory { + t.Helper() hs := []*rspb.Release{ // rls-a releaseStub("rls-a", 4, "default", rspb.StatusDeployed), @@ -83,6 +84,7 @@ func tsFixtureMemory(t *testing.T) *Memory { // newTestFixtureCfgMaps initializes a MockConfigMapsInterface. // ConfigMaps are created for each release provided. func newTestFixtureCfgMaps(t *testing.T, releases ...*rspb.Release) *ConfigMaps { + t.Helper() var mock MockConfigMapsInterface mock.Init(t, releases...) @@ -98,6 +100,7 @@ type MockConfigMapsInterface struct { // Init initializes the MockConfigMapsInterface with the set of releases. func (mock *MockConfigMapsInterface) Init(t *testing.T, releases ...*rspb.Release) { + t.Helper() mock.objects = map[string]*v1.ConfigMap{} for _, rls := range releases { @@ -169,6 +172,7 @@ func (mock *MockConfigMapsInterface) Delete(_ context.Context, name string, _ me // newTestFixtureSecrets initializes a MockSecretsInterface. // Secrets are created for each release provided. func newTestFixtureSecrets(t *testing.T, releases ...*rspb.Release) *Secrets { + t.Helper() var mock MockSecretsInterface mock.Init(t, releases...) @@ -184,6 +188,7 @@ type MockSecretsInterface struct { // Init initializes the MockSecretsInterface with the set of releases. func (mock *MockSecretsInterface) Init(t *testing.T, releases ...*rspb.Release) { + t.Helper() mock.objects = map[string]*v1.Secret{} for _, rls := range releases { @@ -254,6 +259,7 @@ func (mock *MockSecretsInterface) Delete(_ context.Context, name string, _ metav // newTestFixtureSQL mocks the SQL database (for testing purposes) func newTestFixtureSQL(t *testing.T, _ ...*rspb.Release) (*SQL, sqlmock.Sqlmock) { + t.Helper() sqlDB, mock, err := sqlmock.New() if err != nil { t.Fatalf("error when opening stub database connection: %v", err) diff --git a/pkg/time/time_test.go b/pkg/time/time_test.go index 86b43355b..342ca4a10 100644 --- a/pkg/time/time_test.go +++ b/pkg/time/time_test.go @@ -31,6 +31,7 @@ var ( ) func givenTime(t *testing.T) Time { + t.Helper() result, err := Parse(time.RFC3339, "1977-09-02T22:04:05Z") require.NoError(t, err) return result