Files

41 lines
1.1 KiB
Go

// Copyright (C) 2026 ysicing
// SPDX-License-Identifier: AGPL-3.0-or-later
package main
import "testing"
func TestLoadConfigRequiresReleaseToken(t *testing.T) {
_, err := loadConfig(func(string) string { return "" })
if err == nil {
t.Fatal("loadConfig accepted an empty release token")
}
}
func TestLoadConfigRejectsWhitespaceReleaseToken(t *testing.T) {
_, err := loadConfig(func(key string) string {
if key == "XSTATS_RELEASE_TOKEN" {
return " "
}
return ""
})
if err == nil {
t.Fatal("loadConfig accepted a whitespace-only release token")
}
}
func TestLoadConfigUsesExplicitValues(t *testing.T) {
values := map[string]string{
"XSTATS_LISTEN": "127.0.0.1:9090",
"XSTATS_DATABASE": "/var/lib/xstats/stats.sqlite",
"XSTATS_RELEASE_TOKEN": "secret",
}
config, err := loadConfig(func(key string) string { return values[key] })
if err != nil {
t.Fatal(err)
}
if config.Listen != "127.0.0.1:9090" || config.Database != "/var/lib/xstats/stats.sqlite" || config.ReleaseToken != "secret" {
t.Fatalf("unexpected config: %#v", config)
}
}