journal_mode_test.go 974 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package database
  2. import (
  3. "path/filepath"
  4. "testing"
  5. )
  6. func journalModeOf(t *testing.T) string {
  7. t.Helper()
  8. var mode string
  9. if err := db.Raw("PRAGMA journal_mode;").Scan(&mode).Error; err != nil {
  10. t.Fatalf("read journal_mode: %v", err)
  11. }
  12. return mode
  13. }
  14. func TestSqliteJournalModeDefaultsToWal(t *testing.T) {
  15. t.Setenv("XUI_DB_JOURNAL_MODE", "")
  16. dbDir := t.TempDir()
  17. if err := InitDB(filepath.Join(dbDir, "x-ui.db")); err != nil {
  18. t.Fatalf("InitDB: %v", err)
  19. }
  20. t.Cleanup(func() { _ = CloseDB() })
  21. if got := journalModeOf(t); got != "wal" {
  22. t.Fatalf("journal_mode = %q, want wal", got)
  23. }
  24. }
  25. func TestSqliteJournalModeEnvOverrideDelete(t *testing.T) {
  26. t.Setenv("XUI_DB_JOURNAL_MODE", "delete")
  27. dbDir := t.TempDir()
  28. if err := InitDB(filepath.Join(dbDir, "x-ui.db")); err != nil {
  29. t.Fatalf("InitDB: %v", err)
  30. }
  31. t.Cleanup(func() { _ = CloseDB() })
  32. if got := journalModeOf(t); got != "delete" {
  33. t.Fatalf("journal_mode = %q, want delete", got)
  34. }
  35. }