alt/services/api/internal/config/config_test.go
toki 87c7f9cdee chore(ports): 워크스페이스 포트를 표준화한다
API/worker runtime default와 local infra host publish가 같은 포트 정책을 사용하도록 맞춘다.\n\nagent-task 리뷰 산출물을 함께 남겨 포트 표준화 작업의 검토 이력을 추적할 수 있게 한다.
2026-06-07 13:44:37 +09:00

58 lines
1.8 KiB
Go

package config
import (
"reflect"
"testing"
)
func TestLoadDefaultsIncludeLocalWebSocketOrigins(t *testing.T) {
t.Setenv("ALT_API_HOST", "")
t.Setenv("ALT_API_PORT", "")
t.Setenv("ALT_API_SOCKET_PATH", "")
t.Setenv("ALT_SOCKET_HEARTBEAT_INTERVAL_SEC", "")
t.Setenv("ALT_SOCKET_HEARTBEAT_WAIT_SEC", "")
t.Setenv("ALT_API_WS_ORIGIN_PATTERNS", "")
t.Setenv("ALT_WORKER_SOCKET_URL", "")
cfg := Load()
// Verify API port default
if cfg.Port != 18030 {
t.Errorf("expected default Port to be 18030, got %d", cfg.Port)
}
// Verify worker socket URL default
if cfg.WorkerSocketURL != "ws://127.0.0.1:18031/socket" {
t.Errorf("expected default WorkerSocketURL to be ws://127.0.0.1:18031/socket, got %q", cfg.WorkerSocketURL)
}
want := []string{"localhost:*", "127.0.0.1:*"}
if !reflect.DeepEqual(cfg.WSOriginPatterns, want) {
t.Fatalf("WSOriginPatterns = %v, want %v", cfg.WSOriginPatterns, want)
}
}
func TestLoadParsesWebSocketOriginPatterns(t *testing.T) {
t.Setenv("ALT_API_WS_ORIGIN_PATTERNS", "localhost:*, 127.0.0.1:* , toki-labs.com:*")
cfg := Load()
want := []string{"localhost:*", "127.0.0.1:*", "toki-labs.com:*"}
if !reflect.DeepEqual(cfg.WSOriginPatterns, want) {
t.Fatalf("WSOriginPatterns = %v, want %v", cfg.WSOriginPatterns, want)
}
}
func TestLoadWorkerSocketURL(t *testing.T) {
t.Setenv("ALT_WORKER_SOCKET_URL", "ws://127.0.0.1:9090/custom")
cfg := Load()
if cfg.WorkerSocketURL != "ws://127.0.0.1:9090/custom" {
t.Errorf("expected WorkerSocketURL to be ws://127.0.0.1:9090/custom, got %q", cfg.WorkerSocketURL)
}
t.Setenv("ALT_WORKER_SOCKET_URL", "")
cfg = Load()
if cfg.WorkerSocketURL != "ws://127.0.0.1:18031/socket" {
t.Errorf("expected default WorkerSocketURL to be ws://127.0.0.1:18031/socket, got %q", cfg.WorkerSocketURL)
}
}