package models

import "testing"

func TestParseCursorCliModels(t *testing.T) {
	output := `
gpt-4o - GPT-4o (some info)
claude-3-5-sonnet - Claude 3.5 Sonnet
gpt-4o - GPT-4o duplicate
invalid line without dash
`
	result := ParseCursorCliModels(output)

	if len(result) != 2 {
		t.Fatalf("expected 2 unique models, got %d: %v", len(result), result)
	}
	if result[0].ID != "gpt-4o" {
		t.Errorf("expected gpt-4o, got %s", result[0].ID)
	}
	if result[0].Name != "GPT-4o" {
		t.Errorf("expected 'GPT-4o', got %s", result[0].Name)
	}
	if result[1].ID != "claude-3-5-sonnet" {
		t.Errorf("expected claude-3-5-sonnet, got %s", result[1].ID)
	}
}

func TestParseCursorCliModelsEmpty(t *testing.T) {
	result := ParseCursorCliModels("")
	if len(result) != 0 {
		t.Fatalf("expected empty, got %v", result)
	}
}
