mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-15 23:06:38 +00:00
* implement reverse proxy --------- Co-authored-by: Alisdair MacLeod <git@alisdairmacleod.co.uk> Co-authored-by: mlsmaycon <mlsmaycon@gmail.com> Co-authored-by: Eduard Gert <kontakt@eduardgert.de> Co-authored-by: Viktor Liu <viktor@netbird.io> Co-authored-by: Diego Noguês <diego.sure@gmail.com> Co-authored-by: Diego Noguês <49420+diegocn@users.noreply.github.com> Co-authored-by: Bethuel Mmbaga <bethuelmbaga12@gmail.com> Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> Co-authored-by: Ashley Mensah <ashleyamo982@gmail.com>
57 lines
1.3 KiB
Go
57 lines
1.3 KiB
Go
package domain_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/netbirdio/netbird/management/internals/modules/reverseproxy/domain"
|
|
)
|
|
|
|
type resolver struct {
|
|
CNAME string
|
|
}
|
|
|
|
func (r resolver) LookupCNAME(_ context.Context, _ string) (string, error) {
|
|
return r.CNAME, nil
|
|
}
|
|
|
|
func TestIsValid(t *testing.T) {
|
|
tests := map[string]struct {
|
|
resolver interface {
|
|
LookupCNAME(context.Context, string) (string, error)
|
|
}
|
|
domain string
|
|
accept []string
|
|
expect bool
|
|
}{
|
|
"match": {
|
|
resolver: resolver{"bar.example.com."}, // Including trailing "." in response.
|
|
domain: "foo.example.com",
|
|
accept: []string{"bar.example.com"},
|
|
expect: true,
|
|
},
|
|
"no match": {
|
|
resolver: resolver{"invalid"},
|
|
domain: "foo.example.com",
|
|
accept: []string{"bar.example.com"},
|
|
expect: false,
|
|
},
|
|
"accept trailing dot": {
|
|
resolver: resolver{"bar.example.com."},
|
|
domain: "foo.example.com",
|
|
accept: []string{"bar.example.com."}, // Including trailing "." in accept.
|
|
expect: true,
|
|
},
|
|
}
|
|
|
|
for name, test := range tests {
|
|
t.Run(name, func(t *testing.T) {
|
|
validator := domain.NewValidator(test.resolver)
|
|
actual := validator.IsValid(t.Context(), test.domain, test.accept)
|
|
if test.expect != actual {
|
|
t.Errorf("Incorrect return value:\nexpect: %v\nactual: %v", test.expect, actual)
|
|
}
|
|
})
|
|
}
|
|
}
|