Files
Owen f3a959334f Rename project from inventree to vibetree
- go.mod module path (and every internal/vibetree import) inventree -> vibetree
- cmd/inventree/ -> cmd/vibetree/, deploy/inventree.service -> vibetree.service
- Default site name (seed data + the siteName template func's fallback)
  is now "vibetree", shown in the navbar, <title>, and login page
- Session cookie renamed inventree_session -> vibetree_session
- Default DB path data/inventree.db -> data/vibetree.db, CLI/log text,
  Dockerfile, docker-compose.yml, README, .gitignore/.dockerignore all
  updated to match

Existing installs: this changes the session cookie name (users will be
signed out once) and the default DB filename (point -db at your existing
file, or rename it, to keep your data).
2026-08-17 17:14:52 -05:00

77 lines
1.8 KiB
Go

package database_test
import (
"path/filepath"
"testing"
"vibetree/internal/database"
)
func TestOpenSetsPragmasAndMigrates(t *testing.T) {
dir := t.TempDir()
db, err := database.Open(filepath.Join(dir, "test.db"))
if err != nil {
t.Fatalf("open: %v", err)
}
defer db.Close()
var journalMode string
if err := db.QueryRow(`PRAGMA journal_mode`).Scan(&journalMode); err != nil {
t.Fatalf("query journal_mode: %v", err)
}
if journalMode != "wal" {
t.Fatalf("expected WAL journal mode, got %q", journalMode)
}
var fk int
if err := db.QueryRow(`PRAGMA foreign_keys`).Scan(&fk); err != nil {
t.Fatalf("query foreign_keys: %v", err)
}
if fk != 1 {
t.Fatalf("expected foreign_keys=1, got %d", fk)
}
var userCount int
if err := db.QueryRow(`SELECT COUNT(*) FROM users`).Scan(&userCount); err != nil {
t.Fatalf("query users: %v", err)
}
if userCount != 1 {
t.Fatalf("expected 1 seeded admin user, got %d", userCount)
}
var statusCount int
if err := db.QueryRow(`SELECT COUNT(*) FROM statuses`).Scan(&statusCount); err != nil {
t.Fatalf("query statuses: %v", err)
}
if statusCount != 5 {
t.Fatalf("expected 5 seeded statuses, got %d", statusCount)
}
}
func TestMigrateIsIdempotent(t *testing.T) {
dir := t.TempDir()
path := filepath.Join(dir, "test.db")
db1, err := database.Open(path)
if err != nil {
t.Fatalf("first open: %v", err)
}
db1.Close()
// Re-opening (and re-migrating) an already-migrated database must not
// error or duplicate seed data.
db2, err := database.Open(path)
if err != nil {
t.Fatalf("second open: %v", err)
}
defer db2.Close()
var userCount int
if err := db2.QueryRow(`SELECT COUNT(*) FROM users`).Scan(&userCount); err != nil {
t.Fatalf("query users: %v", err)
}
if userCount != 1 {
t.Fatalf("expected still 1 seeded admin user after reopen, got %d", userCount)
}
}