package autolink_test import ( "testing" "charm.land/glamour/v2/internal/autolink" ) func TestDetect(t *testing.T) { tests := []struct { url string expected string }{ {"https://github.com/owner/repo/issue/123", "owner/repo#123"}, {"https://github.com/owner/repo/issues/123", "owner/repo#123"}, {"https://github.com/owner/repo/pull/123", "owner/repo#123"}, {"https://github.com/owner/repo/pulls/123", "owner/repo#123"}, {"https://github.com/owner/repo/discussions/123", "owner/repo#123"}, {"https://github.com/owner/repo/issue/123#issuecomment-456", "owner/repo#123 (comment)"}, {"https://github.com/owner/repo/issues/123#issuecomment-456", "owner/repo#123 (comment)"}, {"https://github.com/owner/repo/pull/123#issuecomment-456", "owner/repo#123 (comment)"}, {"https://github.com/owner/repo/pulls/123#issuecomment-456", "owner/repo#123 (comment)"}, {"https://github.com/owner/repo/pull/123#discussion_r456", "owner/repo#123 (comment)"}, {"https://github.com/owner/repo/pulls/123#discussion_r456", "owner/repo#123 (comment)"}, {"https://github.com/owner/repo/pull/123#pullrequestreview-456", "owner/repo#123 (review)"}, {"https://github.com/owner/repo/pulls/123#pullrequestreview-456", "owner/repo#123 (review)"}, {"https://github.com/owner/repo/discussions/123#discussioncomment-456", "owner/repo#123 (comment)"}, {"https://github.com/owner/repo/commit/abcdefghijklmnopqrsxyz", "owner/repo@abcdefg"}, {"https://github.com/owner/repo/pull/123/commits/abcdefghijklmnopqrsxyz", "owner/repo@abcdefg"}, {"https://github.com/owner/repo/pulls/123/commits/abcdefghijklmnopqrsxyz", "owner/repo@abcdefg"}, {"https://github.com/owner/repo/commit/abcdefghijklmnopqrsxyz#diff-123", "owner/repo@abcdefg"}, {"https://github.com/owner/repo/pull/123/commits/abcdefghijklmnopqrsxyz#diff-123", "owner/repo@abcdefg"}, {"https://github.com/owner/repo/pulls/123/commits/abcdefghijklmnopqrsxyz#diff-123", "owner/repo@abcdefg"}, } for _, test := range tests { t.Run(test.url, func(t *testing.T) { result, ok := autolink.Detect(test.url) if !ok { t.Errorf("expected to detect URL, got nil") } if result != test.expected { t.Errorf("expected %s, got %s", test.expected, result) } }) } }