settings_test.go
⎇
Raw
1package service
2
3import (
4 "database/sql"
5 "testing"
6
7 "vidarchive/internal/config"
8 "vidarchive/internal/database"
9 "vidarchive/internal/repository"
10)
11
12func setupTestDB(t *testing.T) *sql.DB {
13 cfg := &config.Config{
14 DBPath: ":memory:",
15 }
16 db, err := database.New(cfg)
17 if err != nil {
18 t.Fatalf("failed to create test db: %v", err)
19 }
20 return db
21}
22
23func TestSettingsService(t *testing.T) {
24 db := setupTestDB(t)
25 defer db.Close()
26
27 settingsRepo := repository.NewSettingsRepository(db)
28 svc := NewSettingsService(settingsRepo)
29
30 // Test GetAll defaults
31 settings, err := svc.GetAll()
32 if err != nil {
33 t.Fatalf("failed to get settings: %v", err)
34 }
35 if settings.RefreshInterval != 5 {
36 t.Errorf("expected default refresh interval 5, got %d", settings.RefreshInterval)
37 }
38 if settings.AutoRefreshLibrary {
39 t.Error("expected auto_refresh_library to be false by default")
40 }
41 if !settings.AutoRefreshDownloads {
42 t.Error("expected auto_refresh_downloads to be true by default")
43 }
44
45 // Test SetRefreshInterval
46 if err := svc.SetRefreshInterval("10"); err != nil {
47 t.Fatalf("failed to set refresh interval: %v", err)
48 }
49
50 settings, _ = svc.GetAll()
51 if settings.RefreshInterval != 10 {
52 t.Errorf("expected refresh interval 10, got %d", settings.RefreshInterval)
53 }
54
55 // Test SetAutoRefreshLibrary
56 if err := svc.SetAutoRefreshLibrary(true); err != nil {
57 t.Fatalf("failed to set auto refresh library: %v", err)
58 }
59
60 settings, _ = svc.GetAll()
61 if !settings.AutoRefreshLibrary {
62 t.Error("expected auto_refresh_library to be true")
63 }
64
65 // Test SetAutoRefreshDownloads
66 if err := svc.SetAutoRefreshDownloads(false); err != nil {
67 t.Fatalf("failed to set auto refresh downloads: %v", err)
68 }
69
70 settings, _ = svc.GetAll()
71 if settings.AutoRefreshDownloads {
72 t.Error("expected auto_refresh_downloads to be false")
73 }
74}
75