config_test.go
⎇
Raw
1package config
2
3import (
4 "os"
5 "testing"
6)
7
8func TestNewDefaults(t *testing.T) {
9 cfg := New()
10
11 if cfg.Port != 8080 {
12 t.Errorf("expected default port 8080, got %d", cfg.Port)
13 }
14 if cfg.DataDir != "./data" {
15 t.Errorf("expected default data dir ./data, got %s", cfg.DataDir)
16 }
17 if cfg.Workers != 2 {
18 t.Errorf("expected default workers 2, got %d", cfg.Workers)
19 }
20 if cfg.RefreshInterval != 5 {
21 t.Errorf("expected default refresh interval 5, got %d", cfg.RefreshInterval)
22 }
23}
24
25func TestEnvOverrides(t *testing.T) {
26 os.Setenv("VIDARCHIVE_PORT", "9090")
27 os.Setenv("VIDARCHIVE_WORKERS", "4")
28 os.Setenv("VIDARCHIVE_BASE_URL", "https://vidarchive.example.com")
29 defer func() {
30 os.Unsetenv("VIDARCHIVE_PORT")
31 os.Unsetenv("VIDARCHIVE_WORKERS")
32 os.Unsetenv("VIDARCHIVE_BASE_URL")
33 }()
34
35 cfg := New()
36
37 if cfg.Port != 9090 {
38 t.Errorf("expected port 9090, got %d", cfg.Port)
39 }
40 if cfg.Workers != 4 {
41 t.Errorf("expected workers 4, got %d", cfg.Workers)
42 }
43 if cfg.BaseURL != "https://vidarchive.example.com" {
44 t.Errorf("expected base URL https://vidarchive.example.com, got %s", cfg.BaseURL)
45 }
46 if !cfg.IsHTTPS() {
47 t.Error("expected IsHTTPS() to be true")
48 }
49}
50
51func TestIsHTTPS(t *testing.T) {
52 tests := []struct {
53 url string
54 expected bool
55 }{
56 {"", false},
57 {"http://localhost:8080", false},
58 {"https://example.com", true},
59 {"https://vidarchive.example.com/path", true},
60 }
61
62 for _, test := range tests {
63 cfg := &Config{BaseURL: test.url}
64 if cfg.IsHTTPS() != test.expected {
65 t.Errorf("IsHTTPS() for %q = %v, expected %v", test.url, cfg.IsHTTPS(), test.expected)
66 }
67 }
68}
69