diff --git a/management/server/account_test.go b/management/server/account_test.go index c5583d226..908e7f99b 100644 --- a/management/server/account_test.go +++ b/management/server/account_test.go @@ -14,12 +14,14 @@ import ( "time" "github.com/golang/mock/gomock" - "github.com/netbirdio/netbird/management/server/idp" log "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "golang.zx2c4.com/wireguard/wgctrl/wgtypes" + "github.com/netbirdio/netbird/management/domain" + "github.com/netbirdio/netbird/management/server/idp" + nbdns "github.com/netbirdio/netbird/dns" nbAccount "github.com/netbirdio/netbird/management/server/account" "github.com/netbirdio/netbird/management/server/activity" @@ -1688,7 +1690,7 @@ func TestAccount_Copy(t *testing.T) { NameServerGroups: map[string]*nbdns.NameServerGroup{ "nsGroup1": { ID: "nsGroup1", - Domains: []string{}, + Domains: domain.List{}, Groups: []string{}, NameServers: []nbdns.NameServer{}, }, diff --git a/management/server/dns_test.go b/management/server/dns_test.go index 36476b14c..e86a82955 100644 --- a/management/server/dns_test.go +++ b/management/server/dns_test.go @@ -12,6 +12,7 @@ import ( "github.com/stretchr/testify/assert" nbdns "github.com/netbirdio/netbird/dns" + "github.com/netbirdio/netbird/management/domain" "github.com/netbirdio/netbird/management/server/integrations/port_forwarding" "github.com/netbirdio/netbird/management/server/permissions" "github.com/netbirdio/netbird/management/server/settings" @@ -367,7 +368,7 @@ func generateTestData(size int) nbdns.Config { config.NameServerGroups[i] = &nbdns.NameServerGroup{ ID: fmt.Sprintf("group%d", i), Primary: i == 0, - Domains: []string{fmt.Sprintf("domain%d.com", i)}, + Domains: domain.List{domain.Domain(fmt.Sprintf("domain%d.com", i))}, SearchDomainsEnabled: true, NameServers: []nbdns.NameServer{ { @@ -547,7 +548,7 @@ func TestDNSAccountPeersUpdate(t *testing.T) { Port: dns.DefaultDNSPort, }}, []string{"groupB"}, - true, []string{}, true, userID, false, + true, domain.List{}, true, userID, false, ) assert.NoError(t, err) @@ -580,7 +581,7 @@ func TestDNSAccountPeersUpdate(t *testing.T) { Port: dns.DefaultDNSPort, }}, []string{"groupA"}, - true, []string{}, true, userID, false, + true, domain.List{}, true, userID, false, ) assert.NoError(t, err) diff --git a/management/server/mock_server/account_mock.go b/management/server/mock_server/account_mock.go index 0dd3f927e..5098413d9 100644 --- a/management/server/mock_server/account_mock.go +++ b/management/server/mock_server/account_mock.go @@ -77,7 +77,7 @@ type MockAccountManager struct { GetPATFunc func(ctx context.Context, accountID string, initiatorUserID string, targetUserId string, tokenID string) (*types.PersonalAccessToken, error) GetAllPATsFunc func(ctx context.Context, accountID string, initiatorUserID string, targetUserId string) ([]*types.PersonalAccessToken, error) GetNameServerGroupFunc func(ctx context.Context, accountID, userID, nsGroupID string) (*nbdns.NameServerGroup, error) - CreateNameServerGroupFunc func(ctx context.Context, accountID string, name, description string, nameServerList []nbdns.NameServer, groups []string, primary bool, domains []string, enabled bool, userID string, searchDomainsEnabled bool) (*nbdns.NameServerGroup, error) + CreateNameServerGroupFunc func(ctx context.Context, accountID string, name, description string, nameServerList []nbdns.NameServer, groups []string, primary bool, domains domain.List, enabled bool, userID string, searchDomainsEnabled bool) (*nbdns.NameServerGroup, error) SaveNameServerGroupFunc func(ctx context.Context, accountID, userID string, nsGroupToSave *nbdns.NameServerGroup) error DeleteNameServerGroupFunc func(ctx context.Context, accountID, nsGroupID, userID string) error ListNameServerGroupsFunc func(ctx context.Context, accountID string, userID string) ([]*nbdns.NameServerGroup, error) @@ -566,7 +566,7 @@ func (am *MockAccountManager) GetNameServerGroup(ctx context.Context, accountID, } // CreateNameServerGroup mocks CreateNameServerGroup of the AccountManager interface -func (am *MockAccountManager) CreateNameServerGroup(ctx context.Context, accountID string, name, description string, nameServerList []nbdns.NameServer, groups []string, primary bool, domains []string, enabled bool, userID string, searchDomainsEnabled bool) (*nbdns.NameServerGroup, error) { +func (am *MockAccountManager) CreateNameServerGroup(ctx context.Context, accountID string, name, description string, nameServerList []nbdns.NameServer, groups []string, primary bool, domains domain.List, enabled bool, userID string, searchDomainsEnabled bool) (*nbdns.NameServerGroup, error) { if am.CreateNameServerGroupFunc != nil { return am.CreateNameServerGroupFunc(ctx, accountID, name, description, nameServerList, groups, primary, domains, enabled, userID, searchDomainsEnabled) } diff --git a/management/server/nameserver_test.go b/management/server/nameserver_test.go index dc4be594f..a8f2aedb5 100644 --- a/management/server/nameserver_test.go +++ b/management/server/nameserver_test.go @@ -11,6 +11,7 @@ import ( "github.com/stretchr/testify/require" nbdns "github.com/netbirdio/netbird/dns" + "github.com/netbirdio/netbird/management/domain" "github.com/netbirdio/netbird/management/server/activity" "github.com/netbirdio/netbird/management/server/integrations/port_forwarding" nbpeer "github.com/netbirdio/netbird/management/server/peer" @@ -41,7 +42,7 @@ func TestCreateNameServerGroup(t *testing.T) { groups []string nameServers []nbdns.NameServer primary bool - domains []string + domains domain.List searchDomains bool } @@ -102,7 +103,7 @@ func TestCreateNameServerGroup(t *testing.T) { description: "super", groups: []string{group1ID}, primary: false, - domains: []string{validDomain}, + domains: domain.List{validDomain}, nameServers: []nbdns.NameServer{ { IP: netip.MustParseAddr("1.1.1.1"), @@ -123,7 +124,7 @@ func TestCreateNameServerGroup(t *testing.T) { Name: "super", Description: "super", Primary: false, - Domains: []string{"example.com"}, + Domains: domain.List{"example.com"}, Groups: []string{group1ID}, NameServers: []nbdns.NameServer{ { @@ -360,7 +361,7 @@ func TestCreateNameServerGroup(t *testing.T) { name: "super", description: "super", groups: []string{group1ID}, - domains: []string{invalidDomain}, + domains: domain.List{invalidDomain}, nameServers: []nbdns.NameServer{ { IP: netip.MustParseAddr("1.1.1.1"), @@ -447,8 +448,8 @@ func TestSaveNameServerGroup(t *testing.T) { validGroups := []string{group2ID} invalidGroups := []string{"nonExisting"} disabledPrimary := false - validDomains := []string{validDomain} - invalidDomains := []string{invalidDomain} + validDomains := domain.List{validDomain} + invalidDomains := domain.List{invalidDomain} validNameServerList := []nbdns.NameServer{ { @@ -491,7 +492,7 @@ func TestSaveNameServerGroup(t *testing.T) { newID *string newName *string newPrimary *bool - newDomains []string + newDomains domain.List newNSList []nbdns.NameServer newGroups []string skipCopying bool @@ -908,6 +909,11 @@ func TestValidateDomain(t *testing.T) { domain: "example.", errFunc: require.NoError, }, + { + name: "Valid domain name with double hyphen", + domain: "xn--bcher-kva.com", + errFunc: require.NoError, + }, { name: "Invalid wildcard domain name", domain: "*.example", @@ -924,8 +930,8 @@ func TestValidateDomain(t *testing.T) { errFunc: require.Error, }, { - name: "Invalid domain name with double hyphen", - domain: "test--example.com", + name: "Invalid domain name with double dot", + domain: "example..com", errFunc: require.Error, }, { @@ -1009,7 +1015,7 @@ func TestNameServerAccountPeersUpdate(t *testing.T) { Port: nbdns.DefaultDNSPort, }}, []string{"groupA"}, - true, []string{}, true, userID, false, + true, domain.List{}, true, userID, false, ) assert.NoError(t, err) @@ -1054,7 +1060,7 @@ func TestNameServerAccountPeersUpdate(t *testing.T) { Port: nbdns.DefaultDNSPort, }}, []string{"groupB"}, - true, []string{}, true, userID, false, + true, domain.List{}, true, userID, false, ) assert.NoError(t, err) diff --git a/management/server/peer_test.go b/management/server/peer_test.go index 9c1de0659..b81d33566 100644 --- a/management/server/peer_test.go +++ b/management/server/peer_test.go @@ -1108,7 +1108,7 @@ func TestToSyncResponse(t *testing.T) { Port: nbdns.DefaultDNSPort, }}, Primary: true, - Domains: []string{"example.com"}, + Domains: domain.List{"example.com"}, Enabled: true, SearchDomainsEnabled: true, }, @@ -1121,7 +1121,7 @@ func TestToSyncResponse(t *testing.T) { }}, Groups: []string{"group1"}, Primary: true, - Domains: []string{"example.com"}, + Domains: domain.List{"example.com"}, Enabled: true, SearchDomainsEnabled: true, }, @@ -1995,7 +1995,7 @@ func TestPeerAccountPeersUpdate(t *testing.T) { Port: nbdns.DefaultDNSPort, }}, []string{"groupC"}, - true, []string{}, true, userID, false, + true, domain.List{}, true, userID, false, ) require.NoError(t, err)