package repository import ( "context" "os" "testing" "evobgp/internal/authkey" "evobgp/internal/db" "evobgp/internal/store" ) func TestPostgresFirewallClientCreateAndGetIntegration(t *testing.T) { dsn := os.Getenv("EVOBGP_TEST_DATABASE_URL") if dsn == "" { t.Skip("EVOBGP_TEST_DATABASE_URL not set") } ctx := context.Background() pool, err := db.OpenPostgresPool(ctx, dsn) if err != nil { t.Fatal(err) } defer pool.Close() pg, err := NewPostgres(ctx, pool, true) if err != nil { t.Fatal(err) } tenant, _, _, _, _ := pg.DemoIDs() if tenant == "" { t.Fatal("demo tenant required") } tok := "evobgp_fw_pgtest_" + t.Name() hash := authkey.HashToken(tok) client, err := pg.CreateFirewallClient(tenant, &store.FirewallClientCreate{ Name: "pg-firewall-test", Hostname: "test.local", TokenPrefix: tok[:12], TokenHash: hash, ClientVersion: "test/1", }) if err != nil { t.Fatalf("create: %v", err) } got, err := pg.GetFirewallClient(tenant, client.ID) if err != nil { t.Fatalf("get: %v", err) } if got.Name != "pg-firewall-test" || got.Status != "pending" { t.Fatalf("got %+v", got) } _ = pg.DeleteFirewallClient(tenant, client.ID) }