package config

import (
	"os"
	"testing"
)

func TestConfigLoad(t *testing.T) {
	os.Setenv("ALT_WORKER_HOST", "127.0.0.9")
	os.Setenv("ALT_WORKER_PORT", "9999")
	os.Setenv("ALT_WORKER_SOCKET_PATH", "/ws-test")
	defer func() {
		os.Unsetenv("ALT_WORKER_HOST")
		os.Unsetenv("ALT_WORKER_PORT")
		os.Unsetenv("ALT_WORKER_SOCKET_PATH")
	}()

	cfg := Load()

	if cfg.Host != "127.0.0.9" {
		t.Errorf("expected Host to be 127.0.0.9, got %q", cfg.Host)
	}
	if cfg.Port != 9999 {
		t.Errorf("expected Port to be 9999, got %d", cfg.Port)
	}
	if cfg.SocketPath != "/ws-test" {
		t.Errorf("expected SocketPath to be /ws-test, got %q", cfg.SocketPath)
	}
}

func TestConfigDefault(t *testing.T) {
	os.Unsetenv("ALT_WORKER_HOST")
	os.Unsetenv("ALT_WORKER_PORT")
	os.Unsetenv("ALT_WORKER_SOCKET_PATH")

	cfg := Load()

	if cfg.Host != "127.0.0.1" {
		t.Errorf("expected default Host to be 127.0.0.1, got %q", cfg.Host)
	}
	if cfg.Port != 8081 {
		t.Errorf("expected default Port to be 8081, got %d", cfg.Port)
	}
	if cfg.SocketPath != "/socket" {
		t.Errorf("expected default SocketPath to be /socket, got %q", cfg.SocketPath)
	}
}
