Auto-remediate style-only findings (wsl_v5, nlreturn, noinlineerr, modernize, intrange, perfsprint, usetesting, unconvert, errorlint, gocritic, testifylint) and rename printf-style helpers to f-suffixed names (goprintffuncname): ui.Writer message methods, cli.ReportErrorf, database.Fatalf, vaultik stdoutf.
56 lines
1.5 KiB
Go
56 lines
1.5 KiB
Go
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.Empty(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)
|
|
}
|