diff --git a/cmd/helm/rollback_test.go b/cmd/helm/rollback_test.go index fdc627b5f..263e5d575 100644 --- a/cmd/helm/rollback_test.go +++ b/cmd/helm/rollback_test.go @@ -23,7 +23,7 @@ import ( "helm.sh/helm/v3/pkg/release" ) -func TestRollbackCmd(t *testing.T) { +func makeTestReleases() []*release.Release { rels := []*release.Release{ { Name: "funny-honey", @@ -38,32 +38,35 @@ func TestRollbackCmd(t *testing.T) { Version: 2, }, } + return rels +} +func TestRollbackCmd(t *testing.T) { tests := []cmdTestCase{{ name: "rollback a release", cmd: "rollback funny-honey 1", golden: "output/rollback.txt", - rels: rels, + rels: makeTestReleases(), }, { name: "rollback a release with timeout", cmd: "rollback funny-honey 1 --timeout 120s", golden: "output/rollback-timeout.txt", - rels: rels, + rels: makeTestReleases(), }, { name: "rollback a release with wait", cmd: "rollback funny-honey 1 --wait", golden: "output/rollback-wait.txt", - rels: rels, + rels: makeTestReleases(), }, { name: "rollback a release without revision", cmd: "rollback funny-honey", golden: "output/rollback-no-revision.txt", - rels: rels, + rels: makeTestReleases(), }, { name: "rollback a release without release name", cmd: "rollback", golden: "output/rollback-no-args.txt", - rels: rels, + rels: makeTestReleases(), wantError: true, }} runTestCmd(t, tests) diff --git a/pkg/storage/driver/memory.go b/pkg/storage/driver/memory.go index ca8756c0c..9bcff55c6 100644 --- a/pkg/storage/driver/memory.go +++ b/pkg/storage/driver/memory.go @@ -106,6 +106,9 @@ func (mem *Memory) Query(keyvals map[string]string) ([]*rspb.Release, error) { return true }) } + if len(ls) == 0 { + return nil, ErrReleaseNotFound + } return ls, nil } diff --git a/pkg/storage/driver/memory_test.go b/pkg/storage/driver/memory_test.go index c74df9432..1889649da 100644 --- a/pkg/storage/driver/memory_test.go +++ b/pkg/storage/driver/memory_test.go @@ -83,22 +83,30 @@ func TestMemoryGet(t *testing.T) { func TestMemoryQuery(t *testing.T) { var tests = []struct { - desc string - xlen int - lbs map[string]string + desc string + xlen int + lbs map[string]string + expectedError error }{ { "should be 2 query results", 2, map[string]string{"status": "deployed"}, + nil, + }, + { + "should return ErrReleaseNotFound", + 0, + map[string]string{"status": "pending"}, + ErrReleaseNotFound, }, } ts := tsFixtureMemory(t) for _, tt := range tests { l, err := ts.Query(tt.lbs) - if err != nil { - t.Fatalf("Failed to query: %s\n", err) + if got, want := err, tt.expectedError; got != want { + t.Fatalf("got: %v, want %v", got, want) } if tt.xlen != len(l) {