Files
silo-server/internal/userdb/migrate_v19_test.go
T
af37c53838 feat(collections): add profile-scoped default sorting (#489)
* feat(collections): add profile-scoped default sorting

* fix(collections): address review feedback

* chore(collections): preserve rebase migration coverage

* chore(collections): satisfy changed-line lint

* fix(collections): address remaining review feedback

---------

Co-authored-by: Quick104 <31828688+Quick104@users.noreply.github.com>
2026-08-14 15:45:47 -04:00

43 lines
1.2 KiB
Go

package userdb
import (
"database/sql"
"testing"
)
// An existing v18 store from main must gain the collection sort preferences
// table without replaying or replacing any of main's earlier migrations.
func TestMigrateToV19AddsCollectionSortPreferences(t *testing.T) {
db, err := sql.Open("sqlite3", ":memory:")
if err != nil {
t.Fatalf("open sqlite: %v", err)
}
t.Cleanup(func() { _ = db.Close() })
if err := InitSchema(db); err != nil {
t.Fatalf("InitSchema: %v", err)
}
if _, err := db.Exec(`DROP TABLE IF EXISTS collection_sort_preferences`); err != nil {
t.Fatalf("drop table: %v", err)
}
if _, err := db.Exec("PRAGMA user_version = 18"); err != nil {
t.Fatalf("set user_version: %v", err)
}
if err := runMigrations(db); err != nil {
t.Fatalf("runMigrations: %v", err)
}
version, err := userVersion(db)
if err != nil {
t.Fatalf("userVersion: %v", err)
}
if version != schemaVersion {
t.Fatalf("user_version = %d, want %d", version, schemaVersion)
}
var tableName string
if err := db.QueryRow(`SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'collection_sort_preferences'`).Scan(&tableName); err != nil {
t.Fatalf("collection_sort_preferences table: %v", err)
}
}