quality / changes (push) Successful in 13s
quality / openapi (push) Skipped
quality / web (push) Skipped
quality / commitlint (push) Skipped
quality / docker-check (push) Skipped
quality / go (push) Successful in 1m15s
quality / postgres-integration (push) Successful in 2m6s
quality / legacy-compatibility (1.0.0) (push) Successful in 57s
quality / legacy-compatibility (2.56.2) (push) Successful in 1m10s
quality / bird2 (push) Successful in 24s
CD / quality (push) Successful in 9m1s
CD / publish (push) Failing after 58m14s
Тест ждал tenant со slug demo, а seedDemo создаёт его только в пустой базе. После соседних интеграционных тестов DemoIDs пустой, и проверка падала. Теперь тест создаёт и удаляет собственный tenant. Co-authored-by: Cursor <[email protected]>
58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
package repository
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"testing"
|
|
|
|
"evobgp/internal/authkey"
|
|
"evobgp/internal/db"
|
|
"evobgp/internal/store"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
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, false)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
tenant := uuid.NewString()
|
|
if _, err := pool.Exec(ctx, `INSERT INTO tenant (id, name, slug) VALUES ($1, $2, $3)`, tenant, "firewall", "fw-"+tenant); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
t.Cleanup(func() {
|
|
_, _ = pool.Exec(context.Background(), `DELETE FROM tenant WHERE id = $1`, tenant)
|
|
})
|
|
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)
|
|
}
|