Goodbye legacy DokuWiki translators...
This commit is contained in:
@@ -53,7 +53,7 @@ func TestBuildNativeGeneratesAndSkipsWikiPages(t *testing.T) {
|
||||
if !strings.Contains(text, "<h1>Athletics</h1>") || !strings.Contains(text, `class="wiki-callout wiki-callout--status"`) || !strings.Contains(text, "This skill is unchanged from vanilla.") {
|
||||
t.Fatalf("unexpected generated page:\n%s", text)
|
||||
}
|
||||
if !strings.Contains(text, `<!-- sow-topdata-wiki:page=skills:athletics -->`) || strings.Contains(text, `wiki_slug=`) || !strings.Contains(text, `<!-- sow-topdata-wiki:managed:start hash="sha256:`) || !strings.Contains(text, "Ability: Strength.") || !strings.Contains(text, "<li>Climb</li>") {
|
||||
if !strings.Contains(text, `<!-- sow-topdata-wiki:page=skills:athletics -->`) || strings.Contains(text, `wiki_slug=`) || !strings.Contains(text, `<!-- sow-topdata-wiki:managed:start hash="sha256:`) || !strings.Contains(text, "Ability: Strength.") || !strings.Contains(text, "Uses:<br>- Climb<br>- Swim") {
|
||||
t.Fatalf("expected HTML managed markers and description to be rendered into wiki page:\n%s", text)
|
||||
}
|
||||
if strings.Contains(text, "[//]: #") || strings.Contains(text, "<WRAP>") {
|
||||
@@ -180,6 +180,44 @@ func TestBuildWikiRegeneratesMissingCachedPages(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestRenderNodeBBManagedHTMLPreservesHeadinglessTemplateHTML(t *testing.T) {
|
||||
source := strings.TrimSpace(`
|
||||
<p class="wiki-callout wiki-callout--status">This is generated.</p>
|
||||
<!-- sow-topdata-wiki:manual:start id="user_top" -->
|
||||
<p></p>
|
||||
<!-- sow-topdata-wiki:manual:end id="user_top" -->
|
||||
<p>Generated description.</p>
|
||||
<table class="wiki-facts"><tbody><tr><th scope="row">Hit Die</th><td>d6</td></tr></tbody></table>
|
||||
<h3>Class Skills</h3>
|
||||
<div class="wiki-media-row"><ul><li>[[Skills/Heal|Heal]]</li></ul></div>
|
||||
`)
|
||||
|
||||
got := renderNodeBBManagedHTML("classes:adept", source, []wikiManualSection{
|
||||
{ID: "user_top", Alias: "UserTopSection", InitialHTML: "<p></p>"},
|
||||
{ID: "user_bottom", Alias: "UserBottomSection", InitialHTML: "<p></p>"},
|
||||
})
|
||||
|
||||
for _, want := range []string{
|
||||
`<table class="wiki-facts">`,
|
||||
`<h3>Class Skills</h3>`,
|
||||
`<div class="wiki-media-row">`,
|
||||
`<li>[[Skills/Heal|Heal]]</li>`,
|
||||
} {
|
||||
if !strings.Contains(got, want) {
|
||||
t.Fatalf("expected generated HTML to preserve %q:\n%s", want, got)
|
||||
}
|
||||
}
|
||||
if strings.Contains(got, "<table") || strings.Contains(got, "<div") || strings.Contains(got, "<p><") {
|
||||
t.Fatalf("expected generated HTML not to be escaped into plain text:\n%s", got)
|
||||
}
|
||||
if strings.Count(got, `manual:start id="user_top"`) != 1 {
|
||||
t.Fatalf("expected existing user_top manual section not to be duplicated:\n%s", got)
|
||||
}
|
||||
if strings.Count(got, `manual:start id="user_bottom"`) != 1 {
|
||||
t.Fatalf("expected missing user_bottom manual section to be bootstrapped once:\n%s", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildNativeIndexesUnregisteredStatusPagesWithDeclaredNamespacePath(t *testing.T) {
|
||||
root := testProjectRoot(t)
|
||||
mkdirAll(t, filepath.Join(root, "topdata", "data", "skills"))
|
||||
|
||||
Reference in New Issue
Block a user