package config import ( "os" "path/filepath" "testing" ) func TestLoadReadsFileAndEnvOverrides(t *testing.T) { t.Setenv("MORZ_INFOBOARD_CONFIG", filepath.Join(t.TempDir(), "config.json")) configPath := os.Getenv("MORZ_INFOBOARD_CONFIG") content := []byte(`{ "screen_id": "file-screen", "server_base_url": "http://file.example", "mqtt_broker": "tcp://file-broker:1883", "heartbeat_every_seconds": 45 }`) if err := os.WriteFile(configPath, content, 0o644); err != nil { t.Fatalf("WriteFile() error = %v", err) } t.Setenv("MORZ_INFOBOARD_SCREEN_ID", "env-screen") cfg, err := Load() if err != nil { t.Fatalf("Load() error = %v", err) } if got, want := cfg.ScreenID, "env-screen"; got != want { t.Fatalf("ScreenID = %q, want %q", got, want) } if got, want := cfg.ServerBaseURL, "http://file.example"; got != want { t.Fatalf("ServerBaseURL = %q, want %q", got, want) } if got, want := cfg.HeartbeatEvery, 45; got != want { t.Fatalf("HeartbeatEvery = %d, want %d", got, want) } }