Files
2026-06-15 13:33:45 +01:00

64 lines
1.5 KiB
Go

package runtimeflags
import (
"context"
"testing"
"github.com/jmoiron/sqlx"
_ "github.com/mattn/go-sqlite3"
)
func TestSQLiteStoreRoundTripsFalseOverride(t *testing.T) {
store := newTestStore(t)
ctx := context.Background()
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")
}
if value {
t.Fatal("features.office override = true, want false")
}
}
func TestSQLiteStoreDeleteOverrideRestoresMissing(t *testing.T) {
store := newTestStore(t)
ctx := context.Background()
if err := store.SetOverride(ctx, "features.office", true); err != nil {
t.Fatalf("SetOverride true: %v", err)
}
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: %v", err)
}
if _, ok := overrides["features.office"]; ok {
t.Fatal("features.office override still present after delete")
}
}
func newTestStore(t *testing.T) *SQLiteStore {
t.Helper()
db, err := sqlx.Open("sqlite3", ":memory:")
if err != nil {
t.Fatalf("open sqlite: %v", err)
}
db.SetMaxOpenConns(1)
t.Cleanup(func() { _ = db.Close() })
store, err := NewSQLiteStore(db, db)
if err != nil {
t.Fatalf("NewSQLiteStore: %v", err)
}
return store
}