Files
memby/server/internal/config/remote_config_test.go
T

47 lines
1.2 KiB
Go
Raw Normal View History

2026-08-12 09:57:56 +12:00
package config
import (
"encoding/json"
"testing"
)
func TestRemoteConfigDefaultsAreComplete(t *testing.T) {
document, err := loadRemoteConfig("")
if err != nil {
t.Fatal(err)
}
if document.SchemaVersion != 1 || document.ConfigVersion != 1 {
t.Fatalf("unexpected versions: %+v", document)
}
if document.Copy.Navigation.Favourites != "Favourites" {
t.Fatalf("favourites label = %q", document.Copy.Navigation.Favourites)
}
}
func TestRemoteConfigRejectsMalformedAndUnsafeDocuments(t *testing.T) {
document := DefaultRemoteConfig()
document.Presentation.NavigationRailExpandedWidthDp = 500
raw, err := json.Marshal(document)
if err != nil {
t.Fatal(err)
}
if _, err := loadRemoteConfig(string(raw)); err == nil {
t.Fatal("unsafe presentation value was accepted")
}
if _, err := loadRemoteConfig(`{"schemaVersion":1,"unknown":true}`); err == nil {
t.Fatal("unknown fields were accepted")
}
document = DefaultRemoteConfig()
document.MinimumAppVersion = "0.3.0"
document.MaximumAppVersion = "0.2.54"
raw, err = json.Marshal(document)
if err != nil {
t.Fatal(err)
}
if _, err := loadRemoteConfig(string(raw)); err == nil {
t.Fatal("reversed app-version bounds were accepted")
}
}