48 lines
1.2 KiB
Go
48 lines
1.2 KiB
Go
package runtimeflags
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/kandev/kandev/internal/testutil"
|
|
)
|
|
|
|
func TestPostgresStoreRoundTrip(t *testing.T) {
|
|
db := testutil.OpenIsolatedPostgres(t, testutil.PostgresDSNFromEnv(t))
|
|
store, err := NewSQLiteStore(db, db)
|
|
if err != nil {
|
|
t.Fatalf("NewSQLiteStore postgres: %v", err)
|
|
}
|
|
|
|
ctx := context.Background()
|
|
if err := store.SetOverride(ctx, "features.office", true); err != nil {
|
|
t.Fatalf("SetOverride true: %v", err)
|
|
}
|
|
if err := store.SetOverride(ctx, "features.office", false); err != nil {
|
|
t.Fatalf("SetOverride false: %v", err)
|
|
}
|
|
|
|
overrides, err := store.ListOverrides(ctx)
|
|
if err != nil {
|
|
t.Fatalf("ListOverrides: %v", err)
|
|
}
|
|
value, ok := overrides["features.office"]
|
|
if !ok {
|
|
t.Fatal("features.office override missing after upsert")
|
|
}
|
|
if value {
|
|
t.Fatal("features.office override = true, want false")
|
|
}
|
|
|
|
if err := store.DeleteOverride(ctx, "features.office"); err != nil {
|
|
t.Fatalf("DeleteOverride: %v", err)
|
|
}
|
|
overrides, err = store.ListOverrides(ctx)
|
|
if err != nil {
|
|
t.Fatalf("ListOverrides after delete: %v", err)
|
|
}
|
|
if _, ok := overrides["features.office"]; ok {
|
|
t.Fatal("features.office override still present after delete")
|
|
}
|
|
}
|