Skip to content

Commit

Permalink
Merge pull request #165 from cmeury/no-match-error
Browse files Browse the repository at this point in the history
fail when no releases match selector
  • Loading branch information
mumoshu authored Jun 12, 2018
2 parents afa4593 + 5751984 commit df264e2
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
3 changes: 3 additions & 0 deletions state/state.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
46 changes: 46 additions & 0 deletions state/state_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}

0 comments on commit df264e2

Please sign in to comment.