Preserve code samples and watcher state during file updates
This commit is contained in:
1 parent
3a8248e560
commit
2df1ab87df
4 files changed
+218
-6
No files matched your search
@@ -0,0 +1,53 @@
|
||||
package vault
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestRewriteAssetLinksPreservesCodeBlocks(t *testing.T) {
|
||||
for _, tc := range []struct {
|
||||
name string
|
||||
code string
|
||||
}{
|
||||
{"缩进", " \n"},
|
||||
{"制表符", "\t\n"},
|
||||
{"引用围栏", "> ```markdown\n> \n> ```\n"},
|
||||
{"引用缩进", "> \n"},
|
||||
{"列表围栏", "- ```markdown\n \n ```\n"},
|
||||
{"列表缩进", "- 项目\n\n \n"},
|
||||
{"有序列表缩进", "10. 项目\n\n \n"},
|
||||
{"引用内嵌列表", "> - ```markdown\n> \n> ```\n"},
|
||||
{"围栏内四格关闭标记", "```markdown\n ```\n\n```\n"},
|
||||
{"标题后缩进代码", "# 标题\n \n"},
|
||||
{"分隔线后缩进代码", "* * *\n \n"},
|
||||
} {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
input := tc.code + "\n\n"
|
||||
want := tc.code + "\n\n"
|
||||
if got := string(RewriteAssetLinks([]byte(input), "a", "b")); got != want {
|
||||
t.Fatalf("代码示例应保持原样,真实链接应更新:\n got %q\nwant %q", got, want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestRewriteAssetLinksInContainersAndParagraphs(t *testing.T) {
|
||||
for _, input := range []string{
|
||||
"> \n",
|
||||
"- \n",
|
||||
"- 项目\n\n \n",
|
||||
"- 项目\n - 子项\n \n",
|
||||
"段落\n \n",
|
||||
"> 段落\n \n",
|
||||
"- 段落\n\n \n",
|
||||
"10. 项目\n\n \n",
|
||||
"- 项目\n - 子项\n ```markdown\n \n ```\n\n \n",
|
||||
"> ```markdown\n> \n\n\n",
|
||||
} {
|
||||
want := strings.ReplaceAll(input, "a.assets/real.png", "b.assets/real.png")
|
||||
if got := string(RewriteAssetLinks([]byte(input), "a", "b")); got != want {
|
||||
t.Errorf("容器缩进与段落续行不应被当作代码:\n got %q\nwant %q", got, want)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user