75 lines
1.8 KiB
Go
75 lines
1.8 KiB
Go
|
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||
|
|
|
||
|
|
package store
|
||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestSettingsGetDefault(t *testing.T) {
|
||
|
|
db := testDB(t)
|
||
|
|
settings := NewSettingsStore(db)
|
||
|
|
|
||
|
|
s, err := settings.Get()
|
||
|
|
if err != nil {
|
||
|
|
t.Fatalf("get default settings: %v", err)
|
||
|
|
}
|
||
|
|
|
||
|
|
// Migration should insert a default row.
|
||
|
|
if s.SiteName == "" {
|
||
|
|
t.Error("expected non-empty default site name")
|
||
|
|
}
|
||
|
|
if s.SignupMode == "" {
|
||
|
|
t.Error("expected non-empty default signup mode")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestSettingsUpdate(t *testing.T) {
|
||
|
|
db := testDB(t)
|
||
|
|
settings := NewSettingsStore(db)
|
||
|
|
|
||
|
|
err := settings.Update("Nye Favoritter", "En kul side", "requests")
|
||
|
|
if err != nil {
|
||
|
|
t.Fatalf("update settings: %v", err)
|
||
|
|
}
|
||
|
|
|
||
|
|
s, err := settings.Get()
|
||
|
|
if err != nil {
|
||
|
|
t.Fatalf("get after update: %v", err)
|
||
|
|
}
|
||
|
|
|
||
|
|
if s.SiteName != "Nye Favoritter" {
|
||
|
|
t.Errorf("site_name = %q, want %q", s.SiteName, "Nye Favoritter")
|
||
|
|
}
|
||
|
|
if s.SiteDescription != "En kul side" {
|
||
|
|
t.Errorf("site_description = %q, want %q", s.SiteDescription, "En kul side")
|
||
|
|
}
|
||
|
|
if s.SignupMode != "requests" {
|
||
|
|
t.Errorf("signup_mode = %q, want %q", s.SignupMode, "requests")
|
||
|
|
}
|
||
|
|
if s.UpdatedAt.IsZero() {
|
||
|
|
t.Error("expected non-zero updated_at after update")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestSettingsUpdatePreservesOtherFields(t *testing.T) {
|
||
|
|
db := testDB(t)
|
||
|
|
settings := NewSettingsStore(db)
|
||
|
|
|
||
|
|
// Set initial values.
|
||
|
|
settings.Update("Site A", "Desc A", "open")
|
||
|
|
|
||
|
|
// Update with different values.
|
||
|
|
settings.Update("Site B", "Desc B", "closed")
|
||
|
|
|
||
|
|
s, _ := settings.Get()
|
||
|
|
if s.SiteName != "Site B" {
|
||
|
|
t.Errorf("site_name = %q, want %q", s.SiteName, "Site B")
|
||
|
|
}
|
||
|
|
if s.SiteDescription != "Desc B" {
|
||
|
|
t.Errorf("site_description = %q, want %q", s.SiteDescription, "Desc B")
|
||
|
|
}
|
||
|
|
if s.SignupMode != "closed" {
|
||
|
|
t.Errorf("signup_mode = %q, want %q", s.SignupMode, "closed")
|
||
|
|
}
|
||
|
|
}
|