diff --git a/pkg/action/get_test.go b/pkg/action/get_test.go index 53a0645eb..876819ee4 100644 --- a/pkg/action/get_test.go +++ b/pkg/action/get_test.go @@ -25,7 +25,8 @@ import ( "github.com/stretchr/testify/require" kubefake "helm.sh/helm/v4/pkg/kube/fake" - release "helm.sh/helm/v4/pkg/release/v1" + + "helm.sh/helm/v4/pkg/release/common" ) func TestNewGet(t *testing.T) { @@ -40,11 +41,13 @@ func TestNewGet(t *testing.T) { func TestGetRun(t *testing.T) { config := actionConfigFixture(t) client := NewGet(config) - simpleRelease := namedReleaseStub("test-release", release.StatusPendingUpgrade) + simpleRelease := namedReleaseStub("test-release", common.StatusPendingUpgrade) require.NoError(t, config.Releases.Create(simpleRelease)) - result, err := client.Run(simpleRelease.Name) + releaser, err := client.Run(simpleRelease.Name) + require.NoError(t, err) + result, err := releaserToV1Release(releaser) require.NoError(t, err) assert.Equal(t, simpleRelease.Name, result.Name) assert.Equal(t, simpleRelease.Version, result.Version) @@ -57,7 +60,7 @@ func TestGetRun_UnreachableKubeClient(t *testing.T) { config.KubeClient = &failingKubeClient client := NewGet(config) - simpleRelease := namedReleaseStub("test-release", release.StatusPendingUpgrade) + simpleRelease := namedReleaseStub("test-release", common.StatusPendingUpgrade) require.NoError(t, config.Releases.Create(simpleRelease)) result, err := client.Run(simpleRelease.Name) diff --git a/pkg/action/history.go b/pkg/action/history.go index 90307c79b..3d561b3ad 100644 --- a/pkg/action/history.go +++ b/pkg/action/history.go @@ -20,7 +20,7 @@ import ( "fmt" chartutil "helm.sh/helm/v4/pkg/chart/v2/util" - release "helm.sh/helm/v4/pkg/release" + "helm.sh/helm/v4/pkg/release" ) // History is the action for checking the release's ledger. diff --git a/pkg/action/history_test.go b/pkg/action/history_test.go index 31c2c87d0..31fdd4a96 100644 --- a/pkg/action/history_test.go +++ b/pkg/action/history_test.go @@ -26,6 +26,8 @@ import ( kubefake "helm.sh/helm/v4/pkg/kube/fake" release "helm.sh/helm/v4/pkg/release/v1" + + "helm.sh/helm/v4/pkg/release/common" ) func TestNewHistory(t *testing.T) { @@ -38,8 +40,8 @@ func TestNewHistory(t *testing.T) { func TestHistoryRun(t *testing.T) { releaseName := "test-release" - simpleRelease := namedReleaseStub(releaseName, release.StatusPendingUpgrade) - updatedRelease := namedReleaseStub(releaseName, release.StatusDeployed) + simpleRelease := namedReleaseStub(releaseName, common.StatusPendingUpgrade) + updatedRelease := namedReleaseStub(releaseName, common.StatusDeployed) updatedRelease.Chart.Metadata.Version = "0.1.1" updatedRelease.Version = 2 @@ -57,14 +59,19 @@ func TestHistoryRun(t *testing.T) { require.NoError(t, err) assert.Len(t, releases, 2, "expected 2 Releases in Config") - result, err := client.Run(releaseName) + releasers, err := client.Run(releaseName) + require.NoError(t, err) + assert.Len(t, releasers, 2, "expected 2 Releases in History result") + + release1, err := releaserToV1Release(releasers[0]) require.NoError(t, err) + assert.Equal(t, simpleRelease.Name, release1.Name) + assert.Equal(t, simpleRelease.Version, release1.Version) - assert.Len(t, result, 2, "expected 2 Releases in History result") - assert.Equal(t, simpleRelease.Name, result[0].Name) - assert.Equal(t, simpleRelease.Version, result[0].Version) - assert.Equal(t, updatedRelease.Name, result[1].Name) - assert.Equal(t, updatedRelease.Version, result[1].Version) + release2, err := releaserToV1Release(releasers[1]) + require.NoError(t, err) + assert.Equal(t, updatedRelease.Name, release2.Name) + assert.Equal(t, updatedRelease.Version, release2.Version) } func TestHistoryRun_UnreachableKubeClient(t *testing.T) { diff --git a/pkg/action/install.go b/pkg/action/install.go index 3ec11e52f..8a0df6346 100644 --- a/pkg/action/install.go +++ b/pkg/action/install.go @@ -116,7 +116,6 @@ type Install struct { Labels map[string]string // KubeVersion allows specifying a custom kubernetes version to use and // APIVersions allows a manual set of supported API Versions to be passed - // (for things like templating). These are ignored if ClientOnly is false KubeVersion *common.KubeVersion APIVersions common.VersionSet // Used by helm template to render charts with .Release.IsUpgrade. Ignored if Dry-Run is false diff --git a/pkg/action/install_test.go b/pkg/action/install_test.go index 41d56152e..84b94b431 100644 --- a/pkg/action/install_test.go +++ b/pkg/action/install_test.go @@ -34,6 +34,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + ci "helm.sh/helm/v4/pkg/chart" appsv1 "k8s.io/api/apps/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" @@ -49,8 +50,8 @@ import ( chart "helm.sh/helm/v4/pkg/chart/v2" "helm.sh/helm/v4/pkg/kube" kubefake "helm.sh/helm/v4/pkg/kube/fake" - rcommon "helm.sh/helm/v4/pkg/release/common" "helm.sh/helm/v4/pkg/registry" + rcommon "helm.sh/helm/v4/pkg/release/common" release "helm.sh/helm/v4/pkg/release/v1" "helm.sh/helm/v4/pkg/storage/driver" ) @@ -275,17 +276,6 @@ func TestInstallReleaseWithValues(t *testing.T) { is.Equal(expectedUserValues, rel.Config) } -func TestInstallReleaseClientOnly(t *testing.T) { - is := assert.New(t) - instAction := installAction(t) - instAction.ClientOnly = true - _, err := instAction.Run(buildChart(), nil) - require.NoError(t, err) - - is.Equal(instAction.cfg.Capabilities, common.DefaultCapabilities) - is.Equal(instAction.cfg.KubeClient, &kubefake.PrintingKubeClient{Out: io.Discard}) -} - func TestInstallRelease_NoName(t *testing.T) { instAction := installAction(t) instAction.ReleaseName = "" @@ -1186,12 +1176,12 @@ func TestCheckDependencies(t *testing.T) { dependency := chart.Dependency{Name: "hello"} mockChart := buildChart(withDependency()) - assert.Nil(t, CheckDependencies(mockChart, []*chart.Dependency{&dependency})) + assert.Nil(t, CheckDependencies(mockChart, []ci.Dependency{&dependency})) } func TestCheckDependencies_MissingDependency(t *testing.T) { dependency := chart.Dependency{Name: "missing"} mockChart := buildChart(withDependency()) - assert.ErrorContains(t, CheckDependencies(mockChart, []*chart.Dependency{&dependency}), "missing in charts") + assert.ErrorContains(t, CheckDependencies(mockChart, []ci.Dependency{&dependency}), "missing in charts") } diff --git a/pkg/action/release_testing_test.go b/pkg/action/release_testing_test.go index a695cb42a..1ada78a4b 100644 --- a/pkg/action/release_testing_test.go +++ b/pkg/action/release_testing_test.go @@ -72,7 +72,7 @@ func TestReleaseTestingGetPodLogs_FilterEvents(t *testing.T) { out := &bytes.Buffer{} require.NoError(t, client.GetPodLogs(out, &release.Release{Hooks: hooks})) - assert.Contains(t, "", out.String()) + assert.Empty(t, out.String()) } func TestReleaseTestingGetPodLogs_PodRetrievalError(t *testing.T) { diff --git a/pkg/action/status_test.go b/pkg/action/status_test.go index a031fe334..674715aff 100644 --- a/pkg/action/status_test.go +++ b/pkg/action/status_test.go @@ -25,6 +25,7 @@ import ( "github.com/stretchr/testify/require" kubefake "helm.sh/helm/v4/pkg/kube/fake" + rcommon "helm.sh/helm/v4/pkg/release/common" release "helm.sh/helm/v4/pkg/release/v1" ) @@ -43,12 +44,14 @@ func TestStatusRun(t *testing.T) { failingKubeClient.BuildDummy = true config.KubeClient = &failingKubeClient client := NewStatus(config) + client.ShowResourcesTable = true releaseName := "test-release" require.NoError(t, configureReleaseContent(config, releaseName)) - result, err := client.Run(releaseName) - client.ShowResourcesTable = true + releaser, err := client.Run(releaseName) + require.NoError(t, err) + result, err := releaserToV1Release(releaser) require.NoError(t, err) assert.Equal(t, releaseName, result.Name) assert.Equal(t, 1, result.Version) @@ -121,7 +124,7 @@ func configureReleaseContent(cfg *Configuration, releaseName string) error { rel := &release.Release{ Name: releaseName, Info: &release.Info{ - Status: release.StatusDeployed, + Status: rcommon.StatusDeployed, }, Manifest: testManifest, Version: 1, diff --git a/pkg/action/upgrade_test.go b/pkg/action/upgrade_test.go index d75fd518a..17c4927cc 100644 --- a/pkg/action/upgrade_test.go +++ b/pkg/action/upgrade_test.go @@ -34,8 +34,8 @@ import ( chart "helm.sh/helm/v4/pkg/chart/v2" "helm.sh/helm/v4/pkg/kube" kubefake "helm.sh/helm/v4/pkg/kube/fake" - "helm.sh/helm/v4/pkg/release/common" "helm.sh/helm/v4/pkg/registry" + "helm.sh/helm/v4/pkg/release/common" release "helm.sh/helm/v4/pkg/release/v1" "helm.sh/helm/v4/pkg/storage/driver" ) diff --git a/pkg/action/verify_test.go b/pkg/action/verify_test.go index 1e11ff4c5..343dacaef 100644 --- a/pkg/action/verify_test.go +++ b/pkg/action/verify_test.go @@ -33,10 +33,16 @@ func TestVerifyRun(t *testing.T) { client := NewVerify() client.Keyring = "../downloader/testdata/helm-test-key.pub" - require.NoError(t, client.Run("../downloader/testdata/signtest-0.1.0.tgz")) + output, err := client.Run("../downloader/testdata/signtest-0.1.0.tgz") + assert.Contains(t, output, "Signed by:") + assert.Contains(t, output, "Using Key With Fingerprint:") + assert.Contains(t, output, "Chart Hash Verified:") + require.NoError(t, err) } func TestVerifyRun_DownloadError(t *testing.T) { client := NewVerify() - require.Error(t, client.Run("invalid-chart-path")) + output, err := client.Run("invalid-chart-path") + require.Error(t, err) + assert.Empty(t, output) }