Phase 1 Wiki Template refactor
This commit is contained in:
@@ -147,6 +147,49 @@ func TestDeployWikiCreatesNodeBBTopicAndWritesManifest(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestMergeManagedContentPreservesUserTopAndBottomSections(t *testing.T) {
|
||||
existing := strings.Join([]string{
|
||||
`<!-- sow-topdata-wiki:page=classes:acolyte -->`,
|
||||
`<!-- sow-topdata-wiki:managed:start hash="sha256:old" -->`,
|
||||
`<h1>Acolyte</h1>`,
|
||||
`<!-- sow-topdata-wiki:manual:start id="user_top" -->`,
|
||||
`<p>User-written overview.</p>`,
|
||||
`<!-- sow-topdata-wiki:manual:end id="user_top" -->`,
|
||||
`<p>Old generated body.</p>`,
|
||||
`<!-- sow-topdata-wiki:manual:start id="notes" -->`,
|
||||
`<h2>Notes</h2><p>User note.</p>`,
|
||||
`<!-- sow-topdata-wiki:manual:end id="notes" -->`,
|
||||
`<!-- sow-topdata-wiki:managed:end -->`,
|
||||
}, "\n")
|
||||
generated := strings.Join([]string{
|
||||
`<!-- sow-topdata-wiki:page=classes:acolyte -->`,
|
||||
`<!-- sow-topdata-wiki:managed:start hash="sha256:new" -->`,
|
||||
`<h1>Acolyte</h1>`,
|
||||
`<!-- sow-topdata-wiki:manual:start id="user_top" -->`,
|
||||
`<p></p>`,
|
||||
`<!-- sow-topdata-wiki:manual:end id="user_top" -->`,
|
||||
`<p>New generated body.</p>`,
|
||||
`<!-- sow-topdata-wiki:manual:start id="notes" -->`,
|
||||
`<h2>Notes</h2><p></p>`,
|
||||
`<!-- sow-topdata-wiki:manual:end id="notes" -->`,
|
||||
`<!-- sow-topdata-wiki:managed:end -->`,
|
||||
}, "\n")
|
||||
|
||||
merged := mergeManagedContent(existing, generated)
|
||||
for _, expected := range []string{
|
||||
"<p>User-written overview.</p>",
|
||||
"<h2>Notes</h2><p>User note.</p>",
|
||||
"<p>New generated body.</p>",
|
||||
} {
|
||||
if !strings.Contains(merged, expected) {
|
||||
t.Fatalf("expected merged content to contain %q:\n%s", expected, merged)
|
||||
}
|
||||
}
|
||||
if strings.Contains(merged, "Old generated body") {
|
||||
t.Fatalf("expected old generated body to be replaced:\n%s", merged)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDeployWikiCreatesNodeBBTopicWithoutFallbackForDefaultThreeCharacterTitle(t *testing.T) {
|
||||
root := t.TempDir()
|
||||
sourceDir := filepath.Join(root, "pages")
|
||||
|
||||
Reference in New Issue
Block a user