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"
)
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)

@ -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
}

@ -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) {

Loading…
Cancel
Save