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) } }