diff --git a/integration_tests/management/network_map_db/pgsql/main_test.go b/integration_tests/management/network_map_db/pgsql/main_test.go index 3692c8fd2..c14abb72f 100644 --- a/integration_tests/management/network_map_db/pgsql/main_test.go +++ b/integration_tests/management/network_map_db/pgsql/main_test.go @@ -11,6 +11,8 @@ import ( "time" "github.com/google/uuid" + "github.com/jackc/pgx/v5" + "github.com/stretchr/testify/assert" log "github.com/sirupsen/logrus" "gorm.io/driver/postgres" @@ -24,7 +26,10 @@ import ( //go:embed base_data.sql var baseData string -var dsn string +var ( + dsn string + pgstore *networkmap_pgsql.PgStore +) func TestMain(m *testing.M) { _, tmpdsn, err := testutil.CreatePostgresTestContainer() @@ -76,6 +81,11 @@ func TestMain(m *testing.M) { } } + pgstore, err = networkmap_pgsql.NewPostgresqlStore(ctx, dsn) + if err != nil { + log.Fatalf("error creating pg store %v", err.Error()) + } + code := m.Run() cleanup() @@ -130,3 +140,10 @@ func replaceDBName(dsn, newDBName string) string { re := regexp.MustCompile(`(?P
[:/@])(?P[^/?]+)(?P \?|$)`) return re.ReplaceAllString(dsn, `${pre}`+newDBName+`${post}`) } + +func conn(t *testing.T, ctx context.Context) *pgx.Conn { + t.Helper() + c, err := pgstore.Pool.Acquire(ctx) + assert.NoError(t, err) + return c.Conn() +} diff --git a/integration_tests/management/network_map_db/pgsql/network_test.go b/integration_tests/management/network_map_db/pgsql/network_test.go index 2395a2223..00fa8eacd 100644 --- a/integration_tests/management/network_map_db/pgsql/network_test.go +++ b/integration_tests/management/network_map_db/pgsql/network_test.go @@ -11,7 +11,7 @@ import ( "github.com/stretchr/testify/assert" ) -func TestGetNetworks(t *testing.T) { +func TestGetNetwork(t *testing.T) { ctx := context.TODO() s, err := networkmap_pgsql.NewPostgresqlStore(ctx, dsn) diff --git a/integration_tests/management/network_map_db/pgsql/networks_test.go b/integration_tests/management/network_map_db/pgsql/networks_test.go new file mode 100644 index 000000000..3e09e9681 --- /dev/null +++ b/integration_tests/management/network_map_db/pgsql/networks_test.go @@ -0,0 +1,27 @@ +package networkmap_pgsql + +import ( + "context" + "testing" + + networkmap_pgsql "github.com/netbirdio/netbird/management/internals/network_map_db/pgsql" + "github.com/stretchr/testify/assert" +) + +func TestGetNetworks(t *testing.T) { + ctx := context.TODO() + + _, err := pgstore.Pool.Query(ctx, + `insert into networks (id, account_id, public_id) VALUES('network-1','account-1','network-1-public')`) + assert.NoError(t, err) + _, err = pgstore.Pool.Query(ctx, + `insert into networks (id, account_id, public_id) VALUES('network-2','account-1','network-2-public')`) + assert.NoError(t, err) + + networksIdx, err := networkmap_pgsql.GetNetworkXIDToPublicIdMapViaPgxConnection(ctx, conn(t, ctx), "account-1") + assert.NoError(t, err) + assert.Equal(t, networksIdx, map[string]string{ + "network-1": "network-1-public", + "network-2": "network-2-public", + }) +}