Merge pull request #165 from cmeury/no-match-error

fail when no releases match selector
This commit is contained in:
KUOKA Yusuke 2018-06-12 23:58:33 +09:00 committed by GitHub
commit df264e2736
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 49 additions and 0 deletions

View File

@ -464,6 +464,9 @@ func (state *HelmState) FilterReleases(labels []string) error {
for _, r := range releaseSet {
filteredReleases = append(filteredReleases, r)
}
if len(filteredReleases) == 0 {
return errors.New("Specified selector did not match any releases.\n")
}
state.Releases = filteredReleases
return nil
}

View File

@ -825,3 +825,49 @@ func TestHelmState_TestReleasesNoCleanUp(t *testing.T) {
t.Run(tt.name, i)
}
}
func TestHelmState_NoReleaseMatched(t *testing.T) {
releases := []ReleaseSpec{
{
Name: "releaseA",
Labels: map[string]string{
"foo": "bar",
},
},
}
tests := []struct {
name string
labels string
wantErr bool
}{
{
name: "happy path",
labels: "foo=bar",
wantErr: false,
},
{
name: "name does not exist",
labels: "name=releaseB",
wantErr: true,
},
{
name: "label does not match anything",
labels: "foo=notbar",
wantErr: true,
},
}
for _, tt := range tests {
i := func(t *testing.T) {
state := &HelmState{
Releases: releases,
}
errs := state.FilterReleases([]string{tt.labels})
if (errs != nil) != tt.wantErr {
t.Errorf("ReleaseStatuses() for %s error = %v, wantErr %v", tt.name, errs, tt.wantErr)
return
}
}
t.Run(tt.name, i)
}
}