From 45e7681b1ee75b3420677c4a0e5e5ccbfe5c48a8 Mon Sep 17 00:00:00 2001 From: Zubair Haque Date: Mon, 15 Jul 2024 21:45:42 -0400 Subject: [PATCH] chore: add tests for release filters (#1629) --- pkg/state/release_filters_test.go | 69 +++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 pkg/state/release_filters_test.go diff --git a/pkg/state/release_filters_test.go b/pkg/state/release_filters_test.go new file mode 100644 index 00000000..817d4769 --- /dev/null +++ b/pkg/state/release_filters_test.go @@ -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") +}