package database_test import ( "context" "testing" "github.com/stretchr/testify/require" "sneak.berlin/go/vaultik/internal/database" ) func TestLocalMetaEmptyOnFresh(t *testing.T) { db, err := database.NewTestDB() require.NoError(t, err) defer func() { _ = db.Close() }() repos := database.NewRepositories(db) got, err := repos.LocalMeta.Get(context.Background(), database.LocalMetaKeyStorageURL) require.NoError(t, err) require.Equal(t, "", got, "fresh DB must return empty for unset keys, not error") } func TestLocalMetaSetGetRoundTrip(t *testing.T) { db, err := database.NewTestDB() require.NoError(t, err) defer func() { _ = db.Close() }() repos := database.NewRepositories(db) ctx := context.Background() require.NoError(t, repos.LocalMeta.Set(ctx, database.LocalMetaKeyStorageURL, "file:///mnt/backups")) got, err := repos.LocalMeta.Get(ctx, database.LocalMetaKeyStorageURL) require.NoError(t, err) require.Equal(t, "file:///mnt/backups", got) } func TestLocalMetaSetOverwrites(t *testing.T) { db, err := database.NewTestDB() require.NoError(t, err) defer func() { _ = db.Close() }() repos := database.NewRepositories(db) ctx := context.Background() require.NoError(t, repos.LocalMeta.Set(ctx, database.LocalMetaKeyStorageURL, "s3://old")) require.NoError(t, repos.LocalMeta.Set(ctx, database.LocalMetaKeyStorageURL, "s3://new")) got, err := repos.LocalMeta.Get(ctx, database.LocalMetaKeyStorageURL) require.NoError(t, err) require.Equal(t, "s3://new", got) }