Skip to content

Commit

Permalink
test(domain-filter): simple filters on domain exclusion (#5064)
Browse files Browse the repository at this point in the history
* issue(filter-tags): issue-3718 domain exclusion filters

Signed-off-by: ivan katliarchuk <[email protected]>

* issue(filter-tags): issue-3718 domain exclusion filters

Signed-off-by: ivan katliarchuk <[email protected]>

* issue(filter-tags): issue-3718 domain exclusion filters

Signed-off-by: ivan katliarchuk <[email protected]>

* Apply suggestions from code review

Co-authored-by: Michel Loiseleur <[email protected]>

---------

Signed-off-by: ivan katliarchuk <[email protected]>
Co-authored-by: Michel Loiseleur <[email protected]>
  • Loading branch information
ivankatliarchuk and mloiseleur authored Feb 10, 2025
1 parent b98723d commit 70cbcd1
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions endpoint/domain_filter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
"encoding/json"
"fmt"
"regexp"
"strings"
"testing"

"github.com/stretchr/testify/assert"
Expand Down Expand Up @@ -769,3 +770,51 @@ func TestDomainFilterMatchParent(t *testing.T) {
})
}
}

func TestSimpleDomainFilterWithExclusion(t *testing.T) {
test := []struct {
domainFilter []string
exclusionFilter []string
domains []string
want []string
}{
{
domainFilter: []string{"ex.com"},
exclusionFilter: []string{"subdomain.ex.com"},
domains: []string{"subdomain.ex.com", "ex.com", "subdomain.ex.com.", ".subdomain.ex.com", "one.subdomain.ex.com", "ex.com."},
want: []string{"ex.com", "ex.com."},
},
{
domainFilter: []string{"ex.com"},
exclusionFilter: []string{},
domains: []string{"subdomain.ex.com", "ex.com", "subdomain.ex.com.", ".subdomain.ex.com", "one.subdomain.ex.com", "ex.com."},
want: []string{"subdomain.ex.com", "ex.com", "subdomain.ex.com.", ".subdomain.ex.com", "one.subdomain.ex.com", "ex.com."},
},
{
domainFilter: []string{"ex.com"},
exclusionFilter: []string{"one.subdomain.ex.com"},
domains: []string{"subdomain.ex.com", "ex.com", "subdomain.ex.com.", ".subdomain.ex.com", "one.subdomain.ex.com", "ex.com."},
want: []string{"subdomain.ex.com", "ex.com", "subdomain.ex.com.", ".subdomain.ex.com", "ex.com."},
},
{
domainFilter: []string{"ex.com"},
exclusionFilter: []string{".ex.com"},
domains: []string{"subdomain.ex.com", "ex.com", "subdomain.ex.com.", ".subdomain.ex.com", "one.subdomain.ex.com", "ex.com."},
want: []string{"ex.com", "ex.com."},
},
}

for _, tt := range test {
t.Run(fmt.Sprintf("include:%s-exclude:%s", strings.Join(tt.domainFilter, "_"), strings.Join(tt.exclusionFilter, "_")), func(t *testing.T) {
domainFilter := NewDomainFilterWithExclusions(tt.domainFilter, tt.exclusionFilter)
var got []string
for _, domain := range tt.domains {
if domainFilter.Match(domain) {
got = append(got, domain)
}
}
assert.Equal(t, len(got), len(tt.want))
assert.Equal(t, got, tt.want)
})
}
}

0 comments on commit 70cbcd1

Please sign in to comment.