package api

import (
	"testing"

	"forgejo.zerova.net/public/fj/internal/config"
)

func TestClient_Hostname(t *testing.T) {
	client := &Client{
		hostname: "codeberg.org",
	}

	if client.Hostname() != "codeberg.org" {
		t.Errorf("Expected hostname 'codeberg.org', got '%s'", client.Hostname())
	}
}

func TestNewClientFromConfig_MissingHost(t *testing.T) {
	cfg := &config.Config{
		Hosts: map[string]config.HostConfig{},
	}

	_, err := NewClientFromConfig(cfg, "nonexistent.org", "", "")
	if err == nil {
		t.Error("Expected error for nonexistent host")
	}
}

func TestNewClient_EmptyHostname(t *testing.T) {
	t.Skip("Skipping: NewClient makes actual network calls")
	// Empty hostname should default to codeberg.org
	// This test would require mocking the gitea client
}

func TestNewClient_WithHostname(t *testing.T) {
	t.Skip("Skipping: NewClient makes actual network calls")
	// This test would require mocking the gitea client
}

func TestNewClient_EmptyToken(t *testing.T) {
	t.Skip("Skipping: NewClient makes actual network calls")
	// Empty token should work (for public repos)
	// This test would require mocking the gitea client
}

func TestNewClientFromConfig_ValidHost(t *testing.T) {
	t.Skip("Skipping: NewClient makes actual network calls")
	// This test would require mocking the gitea client
}

func TestNewClientFromConfig_EmptyHostname(t *testing.T) {
	t.Skip("Skipping: NewClient makes actual network calls")
	// Empty hostname should trigger GetHost logic (falls back to codeberg.org)
	// This test would require mocking the gitea client
}
