package utils

import (
	"os"
	"path/filepath"
	"testing"
)

func TestLoadConfig(t *testing.T) {
	homeDir := t.TempDir()
	t.Setenv("HOME", homeDir)

	configDir := filepath.Join(homeDir, ".skraak")
	err := os.MkdirAll(configDir, 0755)
	if err != nil {
		t.Fatalf("failed to create config dir: %v", err)
	}

	jsonContent := `{
		"classify": {
			"reviewer": "Test Reviewer",
			"color": true
		}
	}`

	err = os.WriteFile(filepath.Join(configDir, "config.json"), []byte(jsonContent), 0644)
	if err != nil {
		t.Fatalf("failed to write config: %v", err)
	}

	cfg, path, err := LoadConfig()
	if err != nil {
		t.Fatalf("unexpected error: %v", err)
	}

	if cfg.Classify.Reviewer != "Test Reviewer" {
		t.Errorf("expected Test Reviewer, got %s", cfg.Classify.Reviewer)
	}
	if !cfg.Classify.Color {
		t.Error("expected color to be true")
	}
	if path == "" {
		t.Error("expected path to be returned")
	}
}