Memory driver Query should return error for zero results

Signed-off-by: Michael Nelson <minelson@vmware.com>
pull/7372/head
Michael Nelson 6 years ago
parent f35719a62a
commit eec57be318

@ -23,7 +23,7 @@ import (
"helm.sh/helm/v3/pkg/release" "helm.sh/helm/v3/pkg/release"
) )
func TestRollbackCmd(t *testing.T) { func makeTestReleases() []*release.Release {
rels := []*release.Release{ rels := []*release.Release{
{ {
Name: "funny-honey", Name: "funny-honey",
@ -38,32 +38,35 @@ func TestRollbackCmd(t *testing.T) {
Version: 2, Version: 2,
}, },
} }
return rels
}
func TestRollbackCmd(t *testing.T) {
tests := []cmdTestCase{{ tests := []cmdTestCase{{
name: "rollback a release", name: "rollback a release",
cmd: "rollback funny-honey 1", cmd: "rollback funny-honey 1",
golden: "output/rollback.txt", golden: "output/rollback.txt",
rels: rels, rels: makeTestReleases(),
}, { }, {
name: "rollback a release with timeout", name: "rollback a release with timeout",
cmd: "rollback funny-honey 1 --timeout 120s", cmd: "rollback funny-honey 1 --timeout 120s",
golden: "output/rollback-timeout.txt", golden: "output/rollback-timeout.txt",
rels: rels, rels: makeTestReleases(),
}, { }, {
name: "rollback a release with wait", name: "rollback a release with wait",
cmd: "rollback funny-honey 1 --wait", cmd: "rollback funny-honey 1 --wait",
golden: "output/rollback-wait.txt", golden: "output/rollback-wait.txt",
rels: rels, rels: makeTestReleases(),
}, { }, {
name: "rollback a release without revision", name: "rollback a release without revision",
cmd: "rollback funny-honey", cmd: "rollback funny-honey",
golden: "output/rollback-no-revision.txt", golden: "output/rollback-no-revision.txt",
rels: rels, rels: makeTestReleases(),
}, { }, {
name: "rollback a release without release name", name: "rollback a release without release name",
cmd: "rollback", cmd: "rollback",
golden: "output/rollback-no-args.txt", golden: "output/rollback-no-args.txt",
rels: rels, rels: makeTestReleases(),
wantError: true, wantError: true,
}} }}
runTestCmd(t, tests) runTestCmd(t, tests)

@ -106,6 +106,9 @@ func (mem *Memory) Query(keyvals map[string]string) ([]*rspb.Release, error) {
return true return true
}) })
} }
if len(ls) == 0 {
return nil, ErrReleaseNotFound
}
return ls, nil return ls, nil
} }

@ -86,19 +86,27 @@ func TestMemoryQuery(t *testing.T) {
desc string desc string
xlen int xlen int
lbs map[string]string lbs map[string]string
expectedError error
}{ }{
{ {
"should be 2 query results", "should be 2 query results",
2, 2,
map[string]string{"status": "deployed"}, map[string]string{"status": "deployed"},
nil,
},
{
"should return ErrReleaseNotFound",
0,
map[string]string{"status": "pending"},
ErrReleaseNotFound,
}, },
} }
ts := tsFixtureMemory(t) ts := tsFixtureMemory(t)
for _, tt := range tests { for _, tt := range tests {
l, err := ts.Query(tt.lbs) l, err := ts.Query(tt.lbs)
if err != nil { if got, want := err, tt.expectedError; got != want {
t.Fatalf("Failed to query: %s\n", err) t.Fatalf("got: %v, want %v", got, want)
} }
if tt.xlen != len(l) { if tt.xlen != len(l) {

Loading…
Cancel
Save