/
uzer_007
/
Rixea
Обзор
Документация
Войти
/
uzer_007
/
Rixea
Код
Запросы
0
Задачи
Вики
Пакеты
5
Релизы
2
CI/CD
Аналитика
Безопасность
master
modules/markup/html_issue_test.go
91 строка
3 KB
uzer_007
feat: первая версия Rixea
02 авг 2026, 22:16
02 авг 2026, 22:16
d4f7504
Код
Авторство
О чём код?
// Copyright 2026 Uzer_007. All rights reserved. // SPDX-License-Identifier: MIT package markup_test import ( "context" "html/template" "strings" "testing" "gitverse.ru/uzer_007/Rixea/modules/htmlutil" "gitverse.ru/uzer_007/Rixea/modules/markup" "gitverse.ru/uzer_007/Rixea/modules/markup/markdown" testModule "gitverse.ru/uzer_007/Rixea/modules/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestRender_IssueList(t *testing.T) { defer testModule.MockVariableValue(&markup.RenderBehaviorForTesting.DisableAdditionalAttributes, true)() markup.Init(&markup.RenderHelperFuncs{ RenderRepoIssueIconTitle: func(ctx context.Context, opts markup.RenderIssueIconTitleOptions) (template.HTML, error) { return htmlutil.HTMLFormat("<div>issue #%d</div>", opts.IssueIndex), nil }, }) test := func(input, expected string) { rctx := markup.NewTestRenderContext(markup.TestAppURL, map[string]string{ "user": "test-user", "repo": "test-repo", "markupAllowShortIssuePattern": "true", "footnoteContextId": "12345", }) out, err := markdown.RenderString(rctx, input) require.NoError(t, err) assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(out))) } t.Run("NormalIssueRef", func(t *testing.T) { test( "#12345", `<p><a href="/test-user/test-repo/issues/12345" class="ref-issue" rel="nofollow">#12345</a></p>`, ) }) t.Run("ListIssueRef", func(t *testing.T) { test( "* #12345", `<ul> <li><div>issue #12345</div></li> </ul>`, ) }) t.Run("ListIssueRefNormal", func(t *testing.T) { test( "* foo #12345 bar", `<ul> <li>foo <a href="/test-user/test-repo/issues/12345" class="ref-issue" rel="nofollow">#12345</a> bar</li> </ul>`, ) }) t.Run("ListTodoIssueRef", func(t *testing.T) { test( "* [ ] #12345", `<ul> <li class="task-list-item"><input type="checkbox" disabled="" data-source-position="2"/><div>issue #12345</div></li> </ul>`, ) }) t.Run("IssueFootnote", func(t *testing.T) { test( "foo[^1][^2]\n\n[^1]: bar\n[^2]: baz", `<p>foo<sup id="fnref:user-content-1-12345"><a href="#fn:user-content-1-12345" rel="nofollow">1 </a></sup><sup id="fnref:user-content-2-12345"><a href="#fn:user-content-2-12345" rel="nofollow">2 </a></sup></p> <div> <hr/> <ol> <li id="fn:user-content-1-12345"> <p>bar <a href="#fnref:user-content-1-12345" rel="nofollow">↩︎</a></p> </li> <li id="fn:user-content-2-12345"> <p>baz <a href="#fnref:user-content-2-12345" rel="nofollow">↩︎</a></p> </li> </ol> </div>`, ) }) }