Files
SEEN/backend/internal/config/config_test.go
T
2026-04-10 12:06:24 +02:00

72 lines
1.8 KiB
Go

package config
import (
"testing"
"time"
)
func TestLoadDefaults(t *testing.T) {
t.Setenv("SEEN_HTTP_PORT", "invalid")
t.Setenv("SEEN_HTTP_READ_TIMEOUT", "invalid")
cfg := Load()
if cfg.HTTP.Port != 8081 {
t.Fatalf("expected default port 8081, got %d", cfg.HTTP.Port)
}
if cfg.HTTP.ReadTimeout != 15*time.Second {
t.Fatalf("expected default read timeout, got %s", cfg.HTTP.ReadTimeout)
}
}
func TestLoadCustomValues(t *testing.T) {
t.Setenv("SEEN_ENV", "test")
t.Setenv("SEEN_HTTP_PORT", "9090")
t.Setenv("SEEN_HTTP_READ_TIMEOUT", "5s")
t.Setenv("SEEN_POSTGRES_MAX_CONNS", "22")
t.Setenv("SEEN_CACHE_DB", "3")
t.Setenv("SEEN_IGDB_CLIENT_ID", "client-id")
t.Setenv("SEEN_IGDB_TOKEN_URL", "https://id.twitch.tv/oauth2/token")
t.Setenv("SEEN_CORS_ALLOWED_ORIGINS", "https://seen.example.com, https://www.seen.example.com")
t.Setenv("SEEN_CORS_ALLOW_CREDENTIALS", "true")
cfg := Load()
if cfg.Env != "test" {
t.Fatalf("expected env test, got %q", cfg.Env)
}
if cfg.HTTP.Port != 9090 {
t.Fatalf("expected http port 9090, got %d", cfg.HTTP.Port)
}
if cfg.HTTP.ReadTimeout != 5*time.Second {
t.Fatalf("expected read timeout 5s, got %s", cfg.HTTP.ReadTimeout)
}
if cfg.Postgres.MaxConns != 22 {
t.Fatalf("expected max conns 22, got %d", cfg.Postgres.MaxConns)
}
if cfg.Cache.DB != 3 {
t.Fatalf("expected cache db 3, got %d", cfg.Cache.DB)
}
if cfg.IGDB.ClientID != "client-id" {
t.Fatalf("expected igdb client id to load, got %q", cfg.IGDB.ClientID)
}
if cfg.IGDB.TokenURL != "https://id.twitch.tv/oauth2/token" {
t.Fatalf("expected igdb token url to load, got %q", cfg.IGDB.TokenURL)
}
if len(cfg.CORS.AllowedOrigins) != 2 {
t.Fatalf("expected 2 cors origins, got %d", len(cfg.CORS.AllowedOrigins))
}
if !cfg.CORS.AllowCredentials {
t.Fatal("expected allow credentials to be true")
}
}