diff --git a/pkg/client/client.go b/pkg/client/client.go index 397d568..fdca8e9 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -261,7 +261,11 @@ func (cl *client) ToggleProtection(enable bool) error { } func (cl *client) SetCustomRules(rules *[]string) error { - cl.log.With("rules", len(*rules)).Info("Set user rules") + var l int + if rules != nil { + l = len(*rules) + } + cl.log.With("rules", l).Info("Set user rules") return cl.doPost(cl.client.R().EnableTrace().SetBody(&model.SetRulesRequest{Rules: rules}), "/filtering/set_rules") } diff --git a/pkg/client/client_test.go b/pkg/client/client_test.go index f47cc69..de94243 100644 --- a/pkg/client/client_test.go +++ b/pkg/client/client_test.go @@ -97,6 +97,20 @@ var _ = Describe("Client", func() { err = cl.DeleteFilter(true, model.Filter{Url: "bar"}) Ω(err).ShouldNot(HaveOccurred()) }) + It("should set empty filter rules", func() { + ts, cl = ClientPost("/filtering/set_rules", + `{"rules":[]}`, + ) + err := cl.SetCustomRules(utils.Ptr([]string{})) + Ω(err).ShouldNot(HaveOccurred()) + }) + It("should set nil filter rules", func() { + ts, cl = ClientPost("/filtering/set_rules", + `{}`, + ) + err := cl.SetCustomRules(nil) + Ω(err).ShouldNot(HaveOccurred()) + }) }) Context("Status", func() {