package config

import (
	"testing"
	"time"
)

// Akış motoru (Faz 9) ayarları: boşsa paket varsayılanları geçerli olur (sıfır geçilir),
// değer verilirse servise iletilir. Çökme yok, sessiz varsayılan var.
func TestWorkflowSettings(t *testing.T) {
	clearEnv(t)
	cfg, err := Load()
	if err != nil {
		t.Fatal(err)
	}
	if cfg.Workflow.MaxConcurrent != 0 || cfg.Workflow.RunTimeout != 0 {
		t.Errorf("varsayılanlar sıfır geçmeli (paket kendi varsayılanını koysun): %+v", cfg.Workflow)
	}
}

func TestWorkflowSettingsValues(t *testing.T) {
	clearEnv(t)
	t.Setenv("WORKFLOW_MAX_CONCURRENT", "8")
	t.Setenv("WORKFLOW_RUN_TIMEOUT", "90s")
	cfg, err := Load()
	if err != nil {
		t.Fatal(err)
	}
	if cfg.Workflow.MaxConcurrent != 8 {
		t.Errorf("MaxConcurrent = %d, 8 bekleniyordu", cfg.Workflow.MaxConcurrent)
	}
	if cfg.Workflow.RunTimeout != 90*time.Second {
		t.Errorf("RunTimeout = %v, 90s bekleniyordu", cfg.Workflow.RunTimeout)
	}
}
