chore: add tests for release filters (#1629)

This commit is contained in:
Zubair Haque 2024-07-15 21:45:42 -04:00 committed by GitHub
parent f77dc3d5b2
commit 45e7681b1e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 69 additions and 0 deletions

View File

@ -0,0 +1,69 @@
package state
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestLabelFilterMatchSuccessfulMatch(t *testing.T) {
lf := LabelFilter{
positiveLabels: [][]string{{"foo", "bar"}},
negativeLabels: [][]string{{"baz", "bat"}},
}
release := ReleaseSpec{
Labels: map[string]string{
"foo": "bar",
"baz": "notbat",
},
}
assert.True(t, lf.Match(release), "expected match but got no match")
}
func TestLabelFilterMatchWithNegativeLabels(t *testing.T) {
lf := LabelFilter{
positiveLabels: [][]string{{"foo", "bar"}},
negativeLabels: [][]string{{"baz", "bat"}},
}
release := ReleaseSpec{
Labels: map[string]string{
"foo": "bar",
"baz": "bat",
},
}
assert.False(t, lf.Match(release), "expected no match but got match")
}
func TestParseLabelsValidInput(t *testing.T) {
labelStr := "foo=bar,baz!=bat"
expectedPositive := [][]string{{"foo", "bar"}}
expectedNegative := [][]string{{"baz", "bat"}}
lf, err := ParseLabels(labelStr)
assert.NoError(t, err, "unexpected error")
assert.Equal(t, expectedPositive, lf.positiveLabels, "unexpected positive labels")
assert.Equal(t, expectedNegative, lf.negativeLabels, "unexpected negative labels")
release := ReleaseSpec{
Labels: map[string]string{
"foo": "bar",
"baz": "notbat",
},
}
assert.True(t, lf.Match(release), "expected match but got no match")
}
func TestParseLabelsInvalidFormat(t *testing.T) {
labelStr := "foo=bar,invalid_label"
_, err := ParseLabels(labelStr)
assert.Error(t, err, "expected error but got none")
expectedErrorMsg := "malformed label: invalid_label. Expected label in form k=v or k!=v"
assert.EqualError(t, err, expectedErrorMsg, "unexpected error message")
}