From 216d8509e7cfaf96d560db0d505a642c8b7641e3 Mon Sep 17 00:00:00 2001 From: Garfield Lee Freeman Date: Mon, 8 Apr 2024 13:57:58 +0200 Subject: [PATCH] just return nil filtering group if parse string is nil --- filtering/parse.go | 2 +- filtering/parse_test.go | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/filtering/parse.go b/filtering/parse.go index bcdd6c74..45b5ce37 100644 --- a/filtering/parse.go +++ b/filtering/parse.go @@ -14,7 +14,7 @@ func Parse(s string, quote string) (*Group, error) { } else if quote == "&" || quote == "|" || quote == "(" || quote == ")" || quote == " " || quote == `\` || quote == "!" || quote == "." || quote == "<" || quote == ">" || quote == "=" || quote == "-" || quote == "_" { return nil, fmt.Errorf("quote character cannot be a reserved character") } else if s == "" { - return nil, fmt.Errorf("logic string is empty") + return nil, nil } var ch rune diff --git a/filtering/parse_test.go b/filtering/parse_test.go index 0e388648..411b5db2 100644 --- a/filtering/parse_test.go +++ b/filtering/parse_test.go @@ -932,7 +932,6 @@ func TestParseReturnsError(t *testing.T) { "foobar", "(", ")", - "", } for _, s := range checks { @@ -966,3 +965,12 @@ func TestParseWithInvalidQuoteReturnsError(t *testing.T) { } } } + +func TestParseEmptyString(t *testing.T) { + resp, err := Parse("", `"`) + if err != nil { + t.Fatalf("parse empty string error: %s", err) + } else if resp != nil { + t.Fatalf("parse empty string has non-nil group") + } +}