Files
creator-hub/internal/environment/standalone_order_test.go
T

47 lines
1.4 KiB
Go

package environment
import (
"context"
"encoding/json"
"os"
"testing"
)
func TestPendingEnvironmentDatabaseIDOrder(t *testing.T) {
databaseURL := os.Getenv("CREATORHUB_POSTGRES_TEST_URL")
if databaseURL == "" {
t.Skip("set CREATORHUB_POSTGRES_TEST_URL to run PostgreSQL integration coverage")
}
ctx := context.Background()
store := openFullyMigratedHub(t, ctx, isolatedDatabaseURL(t, databaseURL))
t.Cleanup(func() { _ = store.Close() })
if _, err := store.CreateGateway(ctx, "order-gateway", "http://127.0.0.1:8090", "order-gateway-test-token"); err != nil {
t.Fatal(err)
}
first, err := store.CreateStandaloneEnv(ctx, "order-gateway", Fingerprint{})
if err != nil {
t.Fatal(err)
}
second, err := store.CreateStandaloneEnv(ctx, "order-gateway", Fingerprint{})
if err != nil {
t.Fatal(err)
}
if first.ID < 1 || second.ID <= first.ID {
t.Fatalf("environment IDs must increase: first=%d second=%d", first.ID, second.ID)
}
pending, err := store.ListPendingEnvironments(ctx)
if err != nil || len(pending) != 2 || pending[0].ID != second.ID || pending[1].ID != first.ID {
t.Fatalf("pending environments must be newest first: %#v err=%v", pending, err)
}
data, err := json.Marshal(second)
if err != nil {
t.Fatal(err)
}
var response struct {
ID int64 `json:"id"`
}
if err := json.Unmarshal(data, &response); err != nil || response.ID != second.ID {
t.Fatalf("database ID missing from environment JSON: %s err=%v", data, err)
}
}