41 lines
1.1 KiB
Go
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)
|
|
}
|
|
}
|