From 4fa13c9b873e072c18feed6a5105cb1c54590495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Po=C3=9Fmann?= Date: Thu, 7 Jul 2022 11:53:51 +0200 Subject: [PATCH] extended parseFilter tests --- pkg/zabbix/utils_test.go | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/pkg/zabbix/utils_test.go b/pkg/zabbix/utils_test.go index 911154a..d750a13 100644 --- a/pkg/zabbix/utils_test.go +++ b/pkg/zabbix/utils_test.go @@ -1,8 +1,10 @@ package zabbix import ( + "reflect" "testing" + "github.com/dlclark/regexp2" "github.com/stretchr/testify/assert" ) @@ -61,26 +63,43 @@ func TestParseFilter(t *testing.T) { tests := []struct { name string filter string + want *regexp2.Regexp expectNoError bool expectedError string }{ { name: "Simple regexp", filter: "/.*/", + want: regexp2.MustCompile(".*", regexp2.RE2), expectNoError: true, expectedError: "", }, { name: "Not a regex", filter: "/var/lib/mysql: Total space", + want: nil, expectNoError: true, expectedError: "", }, + { + name: "Regexp with modifier", + filter: "/.*/i", + want: regexp2.MustCompile("(?i).*", regexp2.RE2), + expectNoError: true, + expectedError: "", + }, + { + name: "Regexp with unsupported modifier", + filter: "/.*/1", + want: nil, + expectNoError: false, + expectedError: "", + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - _, err := parseFilter(tt.filter) + got, err := parseFilter(tt.filter) if tt.expectNoError { assert.NoError(t, err) } @@ -88,6 +107,9 @@ func TestParseFilter(t *testing.T) { assert.Error(t, err) assert.EqualError(t, err, tt.expectedError) } + if !reflect.DeepEqual(got, tt.want) { + t.Errorf("parseFilter() = %v, want %v", got, tt.want) + } }) } }