added GetDomains test

Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
This commit is contained in:
Dmitri Dolguikh
2026-08-05 12:37:58 +02:00
parent 1926e983fb
commit efe2eaeb09
3 changed files with 47 additions and 7 deletions
@@ -0,0 +1,40 @@
package networkmap_pgsql
import (
"context"
"database/sql"
"testing"
networkmap_pgsql "github.com/netbirdio/netbird/management/internals/network_map_db/pgsql"
"github.com/stretchr/testify/assert"
)
func TestGetDomains(t *testing.T) {
ctx := context.TODO()
_, err := pgstore.Pool.Query(ctx,
`insert into domains (id, account_id, domain, target_cluster)
VALUES('domain-1','account-1','test-1.com','target-1.cluster.local')`)
assert.NoError(t, err)
_, err = pgstore.Pool.Query(ctx,
`insert into domains (id, account_id, domain, target_cluster)
VALUES('domain-2','account-1','test-2.com','target-2.cluster.local')`)
assert.NoError(t, err)
_, err = pgstore.Pool.Query(ctx,
`insert into domains (id, account_id, domain, target_cluster)
VALUES('domain-3','account-1',null,null)`)
assert.NoError(t, err)
domains, err := pgstore.GetDomains(ctx, "account-1")
assert.NoError(t, err)
assert.Len(t, domains, 2)
assert.Contains(t, domains, networkmap_pgsql.Domain{
Domain: sql.NullString{String: "test-1.com", Valid: true},
TargetCluster: sql.NullString{String: "target-1.cluster.local", Valid: true},
})
assert.Contains(t, domains, networkmap_pgsql.Domain{
Domain: sql.NullString{String: "test-2.com", Valid: true},
TargetCluster: sql.NullString{String: "target-2.cluster.local", Valid: true},
})
}
@@ -11,11 +11,11 @@ const (
GetDomainsQuery = ` GetDomainsQuery = `
select domain, target_cluster select domain, target_cluster
from domains from domains
where account_id=$1 where account_id=$1 and domain<>'' and target_cluster<>''
` `
) )
func (pg *PgStore) GetDomains(ctx context.Context, accountId string) ([]domain, error) { func (pg *PgStore) GetDomains(ctx context.Context, accountId string) ([]Domain, error) {
c, err := pg.Pool.Acquire(ctx) c, err := pg.Pool.Acquire(ctx)
if err != nil { if err != nil {
return nil, err return nil, err
@@ -23,16 +23,16 @@ func (pg *PgStore) GetDomains(ctx context.Context, accountId string) ([]domain,
return GetDomainsViaPgxConnection(ctx, c.Conn(), accountId) return GetDomainsViaPgxConnection(ctx, c.Conn(), accountId)
} }
func GetDomainsViaPgxConnection(ctx context.Context, conn *pgx.Conn, accountId string) ([]domain, error) { func GetDomainsViaPgxConnection(ctx context.Context, conn *pgx.Conn, accountId string) ([]Domain, error) {
rows, err := conn.Query(ctx, GetDomainsQuery, accountId) rows, err := conn.Query(ctx, GetDomainsQuery, accountId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return pgx.CollectRows(rows, pgx.RowToStructByName[domain]) return pgx.CollectRows(rows, pgx.RowToStructByName[Domain])
} }
type domain struct { type Domain struct {
Domain sql.NullString Domain sql.NullString
TargetCluster sql.NullString TargetCluster sql.NullString
} }
@@ -164,7 +164,7 @@ func toSliceOfPtrs[T any](all []T) []*T {
return toret return toret
} }
func serviceDomainZone(svc service, ds []domain) string { func serviceDomainZone(svc service, ds []Domain) string {
if domainFromSuffix(svc.Domain.String, svc.ProxyCluster.String) { if domainFromSuffix(svc.Domain.String, svc.ProxyCluster.String) {
return svc.ProxyCluster.String return svc.ProxyCluster.String
} }
@@ -189,7 +189,7 @@ func domainFromSuffix(domain, suffix string) bool {
return domain == suffix || strings.HasSuffix(domain, "."+suffix) return domain == suffix || strings.HasSuffix(domain, "."+suffix)
} }
func buildPrivateServiceCandidates(svcs []service, domains []domain, proxyPeersByCluster map[string][]*nmdata.Peer) []networkmap.PrivateServiceCandidate { func buildPrivateServiceCandidates(svcs []service, domains []Domain, proxyPeersByCluster map[string][]*nmdata.Peer) []networkmap.PrivateServiceCandidate {
var out []networkmap.PrivateServiceCandidate var out []networkmap.PrivateServiceCandidate
if len(proxyPeersByCluster) == 0 { if len(proxyPeersByCluster) == 0 {