chore: enable thelper

Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
pull/30866/head
Matthieu MOREL 4 months ago
parent dd40316660
commit 157f0ba10a

@ -26,6 +26,7 @@ linters:
- nakedret - nakedret
- revive - revive
- staticcheck - staticcheck
- thelper
- unused - unused
- usestdlibvars - usestdlibvars

@ -76,6 +76,7 @@ func walkTree(n *Node, path string, f func(path string, n *Node)) {
} }
func makeTree(t *testing.T) { func makeTree(t *testing.T) {
t.Helper()
walkTree(tree, tree.name, func(path string, n *Node) { walkTree(tree, tree.name, func(path string, n *Node) {
if n.entries == nil { if n.entries == nil {
if n.symLinkedTo != "" { if n.symLinkedTo != "" {
@ -99,6 +100,7 @@ func makeTree(t *testing.T) {
} }
func checkMarks(t *testing.T, report bool) { func checkMarks(t *testing.T, report bool) {
t.Helper()
walkTree(tree, tree.name, func(path string, n *Node) { walkTree(tree, tree.name, func(path string, n *Node) {
if n.marks != n.expectedMarks && report { if n.marks != n.expectedMarks && report {
t.Errorf("node %s mark = %d; expected %d", path, n.marks, n.expectedMarks) t.Errorf("node %s mark = %d; expected %d", path, n.marks, n.expectedMarks)

@ -46,6 +46,7 @@ func HelmHome(t *testing.T) {
// tempdir := TempFile(t, "foo", []byte("bar")) // tempdir := TempFile(t, "foo", []byte("bar"))
// filename := filepath.Join(tempdir, "foo") // filename := filepath.Join(tempdir, "foo")
func TempFile(t *testing.T, name string, data []byte) string { func TempFile(t *testing.T, name string, data []byte) string {
t.Helper()
path := t.TempDir() path := t.TempDir()
filename := filepath.Join(path, name) filename := filepath.Join(path, name)
if err := os.WriteFile(filename, data, 0755); err != nil { if err := os.WriteFile(filename, data, 0755); err != nil {

@ -457,6 +457,7 @@ func TestCopyFileFail(t *testing.T) {
// files this function creates. It is the caller's responsibility to call // 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. // 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() { func setupInaccessibleDir(t *testing.T, op func(dir string) error) func() {
t.Helper()
dir := t.TempDir() dir := t.TempDir()
subdir := filepath.Join(dir, "dir") subdir := filepath.Join(dir, "dir")

@ -30,8 +30,9 @@ const (
) )
func testfile(t *testing.T, file string) (path string) { func testfile(t *testing.T, file string) (path string) {
var err error t.Helper()
if path, err = filepath.Abs(filepath.Join(tlsTestDir, file)); err != nil { path, err := filepath.Abs(filepath.Join(tlsTestDir, file))
if err != nil {
t.Fatalf("error getting absolute path to test file %q: %v", file, err) t.Fatalf("error getting absolute path to test file %q: %v", file, err)
} }
return path return path

@ -40,6 +40,7 @@ import (
var verbose = flag.Bool("test.log", false, "enable test logging (debug by default)") var verbose = flag.Bool("test.log", false, "enable test logging (debug by default)")
func actionConfigFixture(t *testing.T) *Configuration { func actionConfigFixture(t *testing.T) *Configuration {
t.Helper()
return actionConfigFixtureWithDummyResources(t, nil) return actionConfigFixtureWithDummyResources(t, nil)
} }

@ -167,6 +167,7 @@ func TestInstallRelease_HooksOutputLogsOnSuccessAndFailure(t *testing.T) {
} }
func runInstallForHooksWithSuccess(t *testing.T, manifest, expectedNamespace string, shouldOutput bool) { func runInstallForHooksWithSuccess(t *testing.T, manifest, expectedNamespace string, shouldOutput bool) {
t.Helper()
var expectedOutput string var expectedOutput string
if shouldOutput { if shouldOutput {
expectedOutput = fmt.Sprintf("attempted to output logs for namespace: %s", expectedNamespace) 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) { func runInstallForHooksWithFailure(t *testing.T, manifest, expectedNamespace string, shouldOutput bool) {
t.Helper()
var expectedOutput string var expectedOutput string
if shouldOutput { if shouldOutput {
expectedOutput = fmt.Sprintf("attempted to output logs for namespace: %s", expectedNamespace) expectedOutput = fmt.Sprintf("attempted to output logs for namespace: %s", expectedNamespace)

@ -116,6 +116,7 @@ func installActionWithConfig(config *Configuration) *Install {
} }
func installAction(t *testing.T) *Install { func installAction(t *testing.T) *Install {
t.Helper()
config := actionConfigFixture(t) config := actionConfigFixture(t)
instAction := NewInstall(config) instAction := NewInstall(config)
instAction.Namespace = "spaced" instAction.Namespace = "spaced"

@ -64,13 +64,14 @@ func TestList_Empty(t *testing.T) {
} }
func newListFixture(t *testing.T) *List { func newListFixture(t *testing.T) *List {
t.Helper()
return NewList(actionConfigFixture(t)) return NewList(actionConfigFixture(t))
} }
func TestList_OneNamespace(t *testing.T) { func TestList_OneNamespace(t *testing.T) {
is := assert.New(t) is := assert.New(t)
lister := newListFixture(t) lister := newListFixture(t)
makeMeSomeReleases(lister.cfg.Releases, t) makeMeSomeReleases(t, lister.cfg.Releases)
list, err := lister.Run() list, err := lister.Run()
is.NoError(err) is.NoError(err)
is.Len(list, 3) is.Len(list, 3)
@ -79,7 +80,7 @@ func TestList_OneNamespace(t *testing.T) {
func TestList_AllNamespaces(t *testing.T) { func TestList_AllNamespaces(t *testing.T) {
is := assert.New(t) is := assert.New(t)
lister := newListFixture(t) lister := newListFixture(t)
makeMeSomeReleases(lister.cfg.Releases, t) makeMeSomeReleases(t, lister.cfg.Releases)
lister.AllNamespaces = true lister.AllNamespaces = true
lister.SetStateMask() lister.SetStateMask()
list, err := lister.Run() list, err := lister.Run()
@ -91,7 +92,7 @@ func TestList_Sort(t *testing.T) {
is := assert.New(t) is := assert.New(t)
lister := newListFixture(t) lister := newListFixture(t)
lister.Sort = ByNameDesc // Other sorts are tested elsewhere lister.Sort = ByNameDesc // Other sorts are tested elsewhere
makeMeSomeReleases(lister.cfg.Releases, t) makeMeSomeReleases(t, lister.cfg.Releases)
list, err := lister.Run() list, err := lister.Run()
is.NoError(err) is.NoError(err)
is.Len(list, 3) is.Len(list, 3)
@ -104,7 +105,7 @@ func TestList_Limit(t *testing.T) {
is := assert.New(t) is := assert.New(t)
lister := newListFixture(t) lister := newListFixture(t)
lister.Limit = 2 lister.Limit = 2
makeMeSomeReleases(lister.cfg.Releases, t) makeMeSomeReleases(t, lister.cfg.Releases)
list, err := lister.Run() list, err := lister.Run()
is.NoError(err) is.NoError(err)
is.Len(list, 2) is.Len(list, 2)
@ -117,7 +118,7 @@ func TestList_BigLimit(t *testing.T) {
is := assert.New(t) is := assert.New(t)
lister := newListFixture(t) lister := newListFixture(t)
lister.Limit = 20 lister.Limit = 20
makeMeSomeReleases(lister.cfg.Releases, t) makeMeSomeReleases(t, lister.cfg.Releases)
list, err := lister.Run() list, err := lister.Run()
is.NoError(err) is.NoError(err)
is.Len(list, 3) is.Len(list, 3)
@ -133,7 +134,7 @@ func TestList_LimitOffset(t *testing.T) {
lister := newListFixture(t) lister := newListFixture(t)
lister.Limit = 2 lister.Limit = 2
lister.Offset = 1 lister.Offset = 1
makeMeSomeReleases(lister.cfg.Releases, t) makeMeSomeReleases(t, lister.cfg.Releases)
list, err := lister.Run() list, err := lister.Run()
is.NoError(err) is.NoError(err)
is.Len(list, 2) is.Len(list, 2)
@ -148,7 +149,7 @@ func TestList_LimitOffsetOutOfBounds(t *testing.T) {
lister := newListFixture(t) lister := newListFixture(t)
lister.Limit = 2 lister.Limit = 2
lister.Offset = 3 // Last item is index 2 lister.Offset = 3 // Last item is index 2
makeMeSomeReleases(lister.cfg.Releases, t) makeMeSomeReleases(t, lister.cfg.Releases)
list, err := lister.Run() list, err := lister.Run()
is.NoError(err) is.NoError(err)
is.Len(list, 0) is.Len(list, 0)
@ -163,7 +164,7 @@ func TestList_LimitOffsetOutOfBounds(t *testing.T) {
func TestList_StateMask(t *testing.T) { func TestList_StateMask(t *testing.T) {
is := assert.New(t) is := assert.New(t)
lister := newListFixture(t) lister := newListFixture(t)
makeMeSomeReleases(lister.cfg.Releases, t) makeMeSomeReleases(t, lister.cfg.Releases)
one, err := lister.cfg.Releases.Get("one", 1) one, err := lister.cfg.Releases.Get("one", 1)
is.NoError(err) is.NoError(err)
one.SetStatus(release.StatusUninstalled, "uninstalled") one.SetStatus(release.StatusUninstalled, "uninstalled")
@ -193,7 +194,7 @@ func TestList_StateMaskWithStaleRevisions(t *testing.T) {
lister := newListFixture(t) lister := newListFixture(t)
lister.StateMask = ListFailed lister.StateMask = ListFailed
makeMeSomeReleasesWithStaleFailure(lister.cfg.Releases, t) makeMeSomeReleasesWithStaleFailure(t, lister.cfg.Releases)
res, err := lister.Run() res, err := lister.Run()
@ -205,7 +206,7 @@ func TestList_StateMaskWithStaleRevisions(t *testing.T) {
is.Equal("failed", res[0].Name) is.Equal("failed", res[0].Name)
} }
func makeMeSomeReleasesWithStaleFailure(store *storage.Storage, t *testing.T) { func makeMeSomeReleasesWithStaleFailure(t *testing.T, store *storage.Storage) {
t.Helper() t.Helper()
one := namedReleaseStub("clean", release.StatusDeployed) one := namedReleaseStub("clean", release.StatusDeployed)
one.Namespace = "default" one.Namespace = "default"
@ -242,7 +243,7 @@ func TestList_Filter(t *testing.T) {
is := assert.New(t) is := assert.New(t)
lister := newListFixture(t) lister := newListFixture(t)
lister.Filter = "th." lister.Filter = "th."
makeMeSomeReleases(lister.cfg.Releases, t) makeMeSomeReleases(t, lister.cfg.Releases)
res, err := lister.Run() res, err := lister.Run()
is.NoError(err) is.NoError(err)
@ -254,13 +255,13 @@ func TestList_FilterFailsCompile(t *testing.T) {
is := assert.New(t) is := assert.New(t)
lister := newListFixture(t) lister := newListFixture(t)
lister.Filter = "t[h.{{{" lister.Filter = "t[h.{{{"
makeMeSomeReleases(lister.cfg.Releases, t) makeMeSomeReleases(t, lister.cfg.Releases)
_, err := lister.Run() _, err := lister.Run()
is.Error(err) is.Error(err)
} }
func makeMeSomeReleases(store *storage.Storage, t *testing.T) { func makeMeSomeReleases(t *testing.T, store *storage.Storage) {
t.Helper() t.Helper()
one := releaseStub() one := releaseStub()
one.Name = "one" one.Name = "one"

@ -28,6 +28,7 @@ import (
) )
func uninstallAction(t *testing.T) *Uninstall { func uninstallAction(t *testing.T) *Uninstall {
t.Helper()
config := actionConfigFixture(t) config := actionConfigFixture(t)
unAction := NewUninstall(config) unAction := NewUninstall(config)
return unAction return unAction

@ -36,6 +36,7 @@ import (
) )
func upgradeAction(t *testing.T) *Upgrade { func upgradeAction(t *testing.T) *Upgrade {
t.Helper()
config := actionConfigFixture(t) config := actionConfigFixture(t)
upAction := NewUpgrade(config) upAction := NewUpgrade(config)
upAction.Namespace = "spaced" upAction.Namespace = "spaced"

@ -33,6 +33,7 @@ func TestLoadArchiveFiles(t *testing.T) {
name: "empty input should return no files", name: "empty input should return no files",
generate: func(_ *tar.Writer) {}, generate: func(_ *tar.Writer) {},
check: func(t *testing.T, _ []*BufferedFile, err error) { check: func(t *testing.T, _ []*BufferedFile, err error) {
t.Helper()
if err.Error() != "no files in chart archive" { if err.Error() != "no files in chart archive" {
t.Fatalf(`expected "no files in chart archive", got [%#v]`, err) 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) { check: func(t *testing.T, files []*BufferedFile, err error) {
t.Helper()
if err != nil { if err != nil {
t.Fatalf(`got unwanted error [%#v] for tar file with pax_global_header content`, err) t.Fatalf(`got unwanted error [%#v] for tar file with pax_global_header content`, err)
} }

@ -648,6 +648,7 @@ func verifyChart(t *testing.T, c *chart.Chart) {
} }
func verifyDependencies(t *testing.T, c *chart.Chart) { func verifyDependencies(t *testing.T, c *chart.Chart) {
t.Helper()
if len(c.Metadata.Dependencies) != 2 { if len(c.Metadata.Dependencies) != 2 {
t.Errorf("Expected 2 dependencies, got %d", len(c.Metadata.Dependencies)) 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) { func verifyDependenciesLock(t *testing.T, c *chart.Chart) {
t.Helper()
if len(c.Metadata.Dependencies) != 2 { if len(c.Metadata.Dependencies) != 2 {
t.Errorf("Expected 2 dependencies, got %d", len(c.Metadata.Dependencies)) 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) { func verifyFrobnitz(t *testing.T, c *chart.Chart) {
t.Helper()
verifyChartFileAndTemplate(t, c, "frobnitz") verifyChartFileAndTemplate(t, c, "frobnitz")
} }
func verifyChartFileAndTemplate(t *testing.T, c *chart.Chart, name string) { func verifyChartFileAndTemplate(t *testing.T, c *chart.Chart, name string) {
t.Helper()
if c.Metadata == nil { if c.Metadata == nil {
t.Fatal("Metadata is 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) { func verifyBomStripped(t *testing.T, files []*chart.File) {
t.Helper()
for _, file := range files { for _, file := range files {
if bytes.HasPrefix(file.Data, utf8bom) { if bytes.HasPrefix(file.Data, utf8bom) {
t.Errorf("Byte Order Mark still present in processed file %s", file.Name) t.Errorf("Byte Order Mark still present in processed file %s", file.Name)

@ -34,7 +34,7 @@ func TestLoadChartfile(t *testing.T) {
} }
func verifyChartfile(t *testing.T, f *chart.Metadata, name string) { func verifyChartfile(t *testing.T, f *chart.Metadata, name string) {
t.Helper()
if f == nil { //nolint:staticcheck if f == nil { //nolint:staticcheck
t.Fatal("Failed verifyChartfile because f is nil") t.Fatal("Failed verifyChartfile because f is nil")
} }

@ -558,6 +558,7 @@ func TestDependentChartsWithSomeSubchartsSpecifiedInDependency(t *testing.T) {
} }
func validateDependencyTree(t *testing.T, c *chart.Chart) { func validateDependencyTree(t *testing.T, c *chart.Chart) {
t.Helper()
for _, dependency := range c.Dependencies() { for _, dependency := range c.Dependencies() {
if dependency.Parent() != c { if dependency.Parent() != c {
if dependency.Parent() != c { if dependency.Parent() != c {

@ -224,6 +224,7 @@ chapter:
} }
func matchValues(t *testing.T, data map[string]interface{}) { func matchValues(t *testing.T, data map[string]interface{}) {
t.Helper()
if data["poet"] != "Coleridge" { if data["poet"] != "Coleridge" {
t.Errorf("Unexpected poet: %s", data["poet"]) t.Errorf("Unexpected poet: %s", data["poet"])
} }

@ -27,6 +27,7 @@ import (
// Check if file completion should be performed according to parameter 'shouldBePerformed' // Check if file completion should be performed according to parameter 'shouldBePerformed'
func checkFileCompletion(t *testing.T, cmdName string, shouldBePerformed bool) { func checkFileCompletion(t *testing.T, cmdName string, shouldBePerformed bool) {
t.Helper()
storage := storageFixture() storage := storageFixture()
storage.Create(&release.Release{ storage.Create(&release.Release{
Name: "myrelease", Name: "myrelease",
@ -64,6 +65,7 @@ func TestCompletionFileCompletion(t *testing.T) {
} }
func checkReleaseCompletion(t *testing.T, cmdName string, multiReleasesAllowed bool) { func checkReleaseCompletion(t *testing.T, cmdName string, multiReleasesAllowed bool) {
t.Helper()
multiReleaseTestGolden := "output/empty_nofile_comp.txt" multiReleaseTestGolden := "output/empty_nofile_comp.txt"
if multiReleasesAllowed { if multiReleasesAllowed {
multiReleaseTestGolden = "output/release_list_repeat_comp.txt" multiReleaseTestGolden = "output/release_list_repeat_comp.txt"

@ -250,6 +250,7 @@ func TestDependencyUpdateCmd_WithRepoThatWasNotAdded(t *testing.T) {
} }
func setupMockRepoServer(t *testing.T) *repotest.Server { func setupMockRepoServer(t *testing.T) *repotest.Server {
t.Helper()
srv := repotest.NewTempServer( srv := repotest.NewTempServer(
t, t,
repotest.WithChartSourceGlob("testdata/testcharts/*.tgz"), repotest.WithChartSourceGlob("testdata/testcharts/*.tgz"),

@ -29,6 +29,7 @@ import (
) )
func outputFlagCompletionTest(t *testing.T, cmdName string) { func outputFlagCompletionTest(t *testing.T, cmdName string) {
t.Helper()
releasesMockWithStatus := func(info *release.Info, hooks ...*release.Hook) []*release.Release { releasesMockWithStatus := func(info *release.Info, hooks ...*release.Hook) []*release.Release {
info.LastDeployed = helmtime.Unix(1452902400, 0).UTC() info.LastDeployed = helmtime.Unix(1452902400, 0).UTC()
return []*release.Release{{ return []*release.Release{{

@ -75,6 +75,7 @@ func TestHistoryOutputCompletion(t *testing.T) {
} }
func revisionFlagCompletionTest(t *testing.T, cmdName string) { func revisionFlagCompletionTest(t *testing.T, cmdName string) {
t.Helper()
mk := func(name string, vers int, status release.Status) *release.Release { mk := func(name string, vers int, status release.Status) *release.Release {
return release.Mock(&release.MockReleaseOptions{ return release.Mock(&release.MockReleaseOptions{
Name: name, Name: name,

@ -276,6 +276,7 @@ func TestLoadPluginsForCompletion(t *testing.T) {
} }
func checkCommand(t *testing.T, plugins []*cobra.Command, tests []staticCompletionDetails) { func checkCommand(t *testing.T, plugins []*cobra.Command, tests []staticCompletionDetails) {
t.Helper()
if len(plugins) != len(tests) { if len(plugins) != len(tests) {
t.Fatalf("Expected commands %v, got %v", tests, plugins) t.Fatalf("Expected commands %v, got %v", tests, plugins)
} }

@ -191,6 +191,7 @@ func TestRepoAddConcurrentHiddenFile(t *testing.T) {
} }
func repoAddConcurrent(t *testing.T, testName, repoFile string) { func repoAddConcurrent(t *testing.T, testName, repoFile string) {
t.Helper()
ts := repotest.NewTempServer( ts := repotest.NewTempServer(
t, t,
repotest.WithChartSourceGlob("testdata/testserver/*.*"), repotest.WithChartSourceGlob("testdata/testserver/*.*"),

@ -153,6 +153,7 @@ func createCacheFiles(rootDir string, repoName string) (cacheIndexFile string, c
} }
func testCacheFiles(t *testing.T, cacheIndexFile string, cacheChartsFile string, repoName string) { func testCacheFiles(t *testing.T, cacheIndexFile string, cacheChartsFile string, repoName string) {
t.Helper()
if _, err := os.Stat(cacheIndexFile); err == nil { if _, err := os.Stat(cacheIndexFile); err == nil {
t.Errorf("Error cache index file was not removed for repository %s", repoName) t.Errorf("Error cache index file was not removed for repository %s", repoName)
} }

@ -63,6 +63,7 @@ type testCase struct {
} }
func runTestCases(t *testing.T, testCases []testCase) { func runTestCases(t *testing.T, testCases []testCase) {
t.Helper()
for i, tc := range testCases { for i, tc := range testCases {
t.Run(fmt.Sprint(i), func(t *testing.T) { t.Run(fmt.Sprint(i), func(t *testing.T) {
cmd := &cobra.Command{ cmd := &cobra.Command{

@ -193,7 +193,7 @@ func TestUpgradeCmd(t *testing.T) {
func TestUpgradeWithValue(t *testing.T) { func TestUpgradeWithValue(t *testing.T) {
releaseName := "funny-bunny-v2" releaseName := "funny-bunny-v2"
relMock, ch, chartPath := prepareMockRelease(releaseName, t) relMock, ch, chartPath := prepareMockRelease(t, releaseName)
defer resetEnv()() defer resetEnv()()
@ -220,7 +220,7 @@ func TestUpgradeWithValue(t *testing.T) {
func TestUpgradeWithStringValue(t *testing.T) { func TestUpgradeWithStringValue(t *testing.T) {
releaseName := "funny-bunny-v3" releaseName := "funny-bunny-v3"
relMock, ch, chartPath := prepareMockRelease(releaseName, t) relMock, ch, chartPath := prepareMockRelease(t, releaseName)
defer resetEnv()() defer resetEnv()()
@ -248,7 +248,7 @@ func TestUpgradeWithStringValue(t *testing.T) {
func TestUpgradeInstallWithSubchartNotes(t *testing.T) { func TestUpgradeInstallWithSubchartNotes(t *testing.T) {
releaseName := "wacky-bunny-v1" releaseName := "wacky-bunny-v1"
relMock, ch, _ := prepareMockRelease(releaseName, t) relMock, ch, _ := prepareMockRelease(t, releaseName)
defer resetEnv()() defer resetEnv()()
@ -280,7 +280,7 @@ func TestUpgradeInstallWithSubchartNotes(t *testing.T) {
func TestUpgradeWithValuesFile(t *testing.T) { func TestUpgradeWithValuesFile(t *testing.T) {
releaseName := "funny-bunny-v4" releaseName := "funny-bunny-v4"
relMock, ch, chartPath := prepareMockRelease(releaseName, t) relMock, ch, chartPath := prepareMockRelease(t, releaseName)
defer resetEnv()() defer resetEnv()()
@ -308,7 +308,7 @@ func TestUpgradeWithValuesFile(t *testing.T) {
func TestUpgradeWithValuesFromStdin(t *testing.T) { func TestUpgradeWithValuesFromStdin(t *testing.T) {
releaseName := "funny-bunny-v5" releaseName := "funny-bunny-v5"
relMock, ch, chartPath := prepareMockRelease(releaseName, t) relMock, ch, chartPath := prepareMockRelease(t, releaseName)
defer resetEnv()() defer resetEnv()()
@ -340,7 +340,7 @@ func TestUpgradeWithValuesFromStdin(t *testing.T) {
func TestUpgradeInstallWithValuesFromStdin(t *testing.T) { func TestUpgradeInstallWithValuesFromStdin(t *testing.T) {
releaseName := "funny-bunny-v6" releaseName := "funny-bunny-v6"
_, _, chartPath := prepareMockRelease(releaseName, t) _, _, chartPath := prepareMockRelease(t, releaseName)
defer resetEnv()() 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() tmpChart := t.TempDir()
configmapData, err := os.ReadFile("testdata/testcharts/upgradetest/templates/configmap.yaml") configmapData, err := os.ReadFile("testdata/testcharts/upgradetest/templates/configmap.yaml")
if err != nil { if err != nil {
@ -445,7 +446,7 @@ func TestUpgradeFileCompletion(t *testing.T) {
func TestUpgradeInstallWithLabels(t *testing.T) { func TestUpgradeInstallWithLabels(t *testing.T) {
releaseName := "funny-bunny-labels" releaseName := "funny-bunny-labels"
_, _, chartPath := prepareMockRelease(releaseName, t) _, _, chartPath := prepareMockRelease(t, releaseName)
defer resetEnv()() 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() tmpChart := t.TempDir()
configmapData, err := os.ReadFile("testdata/testcharts/chart-with-secret/templates/configmap.yaml") configmapData, err := os.ReadFile("testdata/testcharts/chart-with-secret/templates/configmap.yaml")
if err != nil { if err != nil {
@ -512,7 +514,7 @@ func prepareMockReleaseWithSecret(releaseName string, t *testing.T) (func(n stri
func TestUpgradeWithDryRun(t *testing.T) { func TestUpgradeWithDryRun(t *testing.T) {
releaseName := "funny-bunny-labels" releaseName := "funny-bunny-labels"
_, _, chartPath := prepareMockReleaseWithSecret(releaseName, t) _, _, chartPath := prepareMockReleaseWithSecret(t, releaseName)
defer resetEnv()() defer resetEnv()()

@ -437,6 +437,7 @@ func TestUpdateWithNoRepo(t *testing.T) {
// Parent chart includes local-subchart 0.1.0 subchart from a fake repository, by default. // 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. // 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) { func checkBuildWithOptionalFields(t *testing.T, chartName string, dep chart.Dependency) {
t.Helper()
// Set up a fake repo // Set up a fake repo
srv := repotest.NewTempServer( srv := repotest.NewTempServer(
t, t,

@ -576,6 +576,7 @@ func TestHttpClientInsecureSkipVerify(t *testing.T) {
} }
func verifyInsecureSkipVerify(t *testing.T, g *HTTPGetter, caseName string, expectedValue bool) *http.Transport { func verifyInsecureSkipVerify(t *testing.T, g *HTTPGetter, caseName string, expectedValue bool) *http.Transport {
t.Helper()
returnVal, err := g.httpClient() returnVal, err := g.httpClient()
if err != nil { if err != nil {

@ -109,6 +109,7 @@ func newResponseJSON(code int, json []byte) (*http.Response, error) {
} }
func newTestClient(t *testing.T) *Client { func newTestClient(t *testing.T) *Client {
t.Helper()
testFactory := cmdtesting.NewTestFactory() testFactory := cmdtesting.NewTestFactory()
t.Cleanup(testFactory.Cleanup) t.Cleanup(testFactory.Cleanup)
@ -215,6 +216,7 @@ func TestCreate(t *testing.T) {
} }
func testUpdate(t *testing.T, threeWayMerge bool) { func testUpdate(t *testing.T, threeWayMerge bool) {
t.Helper()
listA := newPodList("starfish", "otter", "squid") listA := newPodList("starfish", "otter", "squid")
listB := newPodList("starfish", "otter", "dolphin") listB := newPodList("starfish", "otter", "dolphin")
listC := newPodList("starfish", "otter", "dolphin") listC := newPodList("starfish", "otter", "dolphin")

@ -154,6 +154,7 @@ spec:
` `
func getGVR(t *testing.T, mapper meta.RESTMapper, obj *unstructured.Unstructured) schema.GroupVersionResource { func getGVR(t *testing.T, mapper meta.RESTMapper, obj *unstructured.Unstructured) schema.GroupVersionResource {
t.Helper()
gvk := obj.GroupVersionKind() gvk := obj.GroupVersionKind()
mapping, err := mapper.RESTMapping(gvk.GroupKind(), gvk.Version) mapping, err := mapper.RESTMapping(gvk.GroupKind(), gvk.Version)
require.NoError(t, err) 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 { func getRuntimeObjFromManifests(t *testing.T, manifests []string) []runtime.Object {
t.Helper()
objects := []runtime.Object{} objects := []runtime.Object{}
for _, manifest := range manifests { for _, manifest := range manifests {
m := make(map[string]interface{}) 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 { func getResourceListFromRuntimeObjs(t *testing.T, c *Client, objs []runtime.Object) ResourceList {
t.Helper()
resourceList := ResourceList{} resourceList := ResourceList{}
for _, obj := range objs { for _, obj := range objs {
list, err := c.Build(objBody(obj), false) list, err := c.Build(objBody(obj), false)

@ -19,6 +19,7 @@ package registry
import "testing" import "testing"
func verify(t *testing.T, actual reference, registry, repository, tag, digest string) { func verify(t *testing.T, actual reference, registry, repository, tag, digest string) {
t.Helper()
if registry != actual.orasReference.Registry { if registry != actual.orasReference.Registry {
t.Errorf("Oras reference registry expected %v actual %v", registry, actual.Registry) t.Errorf("Oras reference registry expected %v actual %v", registry, actual.Registry)
} }

@ -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) { func check(t *testing.T, by string, fn func(int, int) bool) {
t.Helper()
for i := len(releases) - 1; i > 0; i-- { for i := len(releases) - 1; i > 0; i-- {
if fn(i, i-1) { if fn(i, i-1) {
t.Errorf("release at positions '(%d,%d)' not sorted by %s", i-1, i, by) t.Errorf("release at positions '(%d,%d)' not sorted by %s", i-1, i, by)

@ -352,6 +352,7 @@ func TestDownloadIndexFile(t *testing.T) {
} }
func verifyLocalIndex(t *testing.T, i *IndexFile) { func verifyLocalIndex(t *testing.T, i *IndexFile) {
t.Helper()
numEntries := len(i.Entries) numEntries := len(i.Entries)
if numEntries != 3 { if numEntries != 3 {
t.Errorf("Expected 3 entries in index file but got %d", numEntries) 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) { func verifyLocalChartsFile(t *testing.T, chartsContent []byte, indexContent *IndexFile) {
t.Helper()
var expected, reald []string var expected, reald []string
for chart := range indexContent.Entries { for chart := range indexContent.Entries {
expected = append(expected, chart) expected = append(expected, chart)

@ -42,6 +42,7 @@ import (
) )
func BasicAuthMiddleware(t *testing.T) http.HandlerFunc { func BasicAuthMiddleware(t *testing.T) http.HandlerFunc {
t.Helper()
return http.HandlerFunc(func(_ http.ResponseWriter, r *http.Request) { return http.HandlerFunc(func(_ http.ResponseWriter, r *http.Request) {
username, password, ok := r.BasicAuth() username, password, ok := r.BasicAuth()
if !ok || username != "username" || password != "password" { 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. // The temp dir will be removed by testing package automatically when test finished.
func NewTempServer(t *testing.T, options ...ServerOption) *Server { func NewTempServer(t *testing.T, options ...ServerOption) *Server {
t.Helper()
docrootTempDir, err := os.MkdirTemp("", "helm-repotest-") docrootTempDir, err := os.MkdirTemp("", "helm-repotest-")
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@ -110,6 +111,7 @@ func NewTempServer(t *testing.T, options ...ServerOption) *Server {
// Create the server, but don't yet start it // Create the server, but don't yet start it
func newServer(t *testing.T, docroot string, options ...ServerOption) *Server { func newServer(t *testing.T, docroot string, options ...ServerOption) *Server {
t.Helper()
absdocroot, err := filepath.Abs(docroot) absdocroot, err := filepath.Abs(docroot)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@ -162,6 +164,7 @@ func WithDependingChart(c *chart.Chart) OCIServerOpt {
} }
func NewOCIServer(t *testing.T, dir string) (*OCIServer, error) { func NewOCIServer(t *testing.T, dir string) (*OCIServer, error) {
t.Helper()
testHtpasswdFileBasename := "authtest.htpasswd" testHtpasswdFileBasename := "authtest.htpasswd"
testUsername, testPassword := "username", "password" 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) { func (srv *OCIServer) Run(t *testing.T, opts ...OCIServerOpt) {
t.Helper()
cfg := &OCIServerRunConfig{} cfg := &OCIServerRunConfig{}
for _, fn := range opts { for _, fn := range opts {
fn(cfg) fn(cfg)

@ -26,6 +26,7 @@ import (
) )
func MakeTestTLSConfig(t *testing.T, path string) *tls.Config { 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") ca, pub, priv := filepath.Join(path, "rootca.crt"), filepath.Join(path, "crt.pem"), filepath.Join(path, "key.pem")
insecure := false insecure := false

@ -52,6 +52,7 @@ func testKey(name string, vers int) string {
} }
func tsFixtureMemory(t *testing.T) *Memory { func tsFixtureMemory(t *testing.T) *Memory {
t.Helper()
hs := []*rspb.Release{ hs := []*rspb.Release{
// rls-a // rls-a
releaseStub("rls-a", 4, "default", rspb.StatusDeployed), releaseStub("rls-a", 4, "default", rspb.StatusDeployed),
@ -83,6 +84,7 @@ func tsFixtureMemory(t *testing.T) *Memory {
// newTestFixtureCfgMaps initializes a MockConfigMapsInterface. // newTestFixtureCfgMaps initializes a MockConfigMapsInterface.
// ConfigMaps are created for each release provided. // ConfigMaps are created for each release provided.
func newTestFixtureCfgMaps(t *testing.T, releases ...*rspb.Release) *ConfigMaps { func newTestFixtureCfgMaps(t *testing.T, releases ...*rspb.Release) *ConfigMaps {
t.Helper()
var mock MockConfigMapsInterface var mock MockConfigMapsInterface
mock.Init(t, releases...) mock.Init(t, releases...)
@ -98,6 +100,7 @@ type MockConfigMapsInterface struct {
// Init initializes the MockConfigMapsInterface with the set of releases. // Init initializes the MockConfigMapsInterface with the set of releases.
func (mock *MockConfigMapsInterface) Init(t *testing.T, releases ...*rspb.Release) { func (mock *MockConfigMapsInterface) Init(t *testing.T, releases ...*rspb.Release) {
t.Helper()
mock.objects = map[string]*v1.ConfigMap{} mock.objects = map[string]*v1.ConfigMap{}
for _, rls := range releases { for _, rls := range releases {
@ -169,6 +172,7 @@ func (mock *MockConfigMapsInterface) Delete(_ context.Context, name string, _ me
// newTestFixtureSecrets initializes a MockSecretsInterface. // newTestFixtureSecrets initializes a MockSecretsInterface.
// Secrets are created for each release provided. // Secrets are created for each release provided.
func newTestFixtureSecrets(t *testing.T, releases ...*rspb.Release) *Secrets { func newTestFixtureSecrets(t *testing.T, releases ...*rspb.Release) *Secrets {
t.Helper()
var mock MockSecretsInterface var mock MockSecretsInterface
mock.Init(t, releases...) mock.Init(t, releases...)
@ -184,6 +188,7 @@ type MockSecretsInterface struct {
// Init initializes the MockSecretsInterface with the set of releases. // Init initializes the MockSecretsInterface with the set of releases.
func (mock *MockSecretsInterface) Init(t *testing.T, releases ...*rspb.Release) { func (mock *MockSecretsInterface) Init(t *testing.T, releases ...*rspb.Release) {
t.Helper()
mock.objects = map[string]*v1.Secret{} mock.objects = map[string]*v1.Secret{}
for _, rls := range releases { 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) // newTestFixtureSQL mocks the SQL database (for testing purposes)
func newTestFixtureSQL(t *testing.T, _ ...*rspb.Release) (*SQL, sqlmock.Sqlmock) { func newTestFixtureSQL(t *testing.T, _ ...*rspb.Release) (*SQL, sqlmock.Sqlmock) {
t.Helper()
sqlDB, mock, err := sqlmock.New() sqlDB, mock, err := sqlmock.New()
if err != nil { if err != nil {
t.Fatalf("error when opening stub database connection: %v", err) t.Fatalf("error when opening stub database connection: %v", err)

@ -31,6 +31,7 @@ var (
) )
func givenTime(t *testing.T) Time { func givenTime(t *testing.T) Time {
t.Helper()
result, err := Parse(time.RFC3339, "1977-09-02T22:04:05Z") result, err := Parse(time.RFC3339, "1977-09-02T22:04:05Z")
require.NoError(t, err) require.NoError(t, err)
return result return result

Loading…
Cancel
Save