summaryrefslogtreecommitdiffstats
path: root/utils/markdown/inspect_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'utils/markdown/inspect_test.go')
-rw-r--r--utils/markdown/inspect_test.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/utils/markdown/inspect_test.go b/utils/markdown/inspect_test.go
new file mode 100644
index 000000000..0c5032f2d
--- /dev/null
+++ b/utils/markdown/inspect_test.go
@@ -0,0 +1,54 @@
+// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+package markdown
+
+import (
+ "fmt"
+ "strings"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestInspect(t *testing.T) {
+ markdown := `
+[foo]: bar
+- a
+ > [![]()]()
+ > [![foo]][foo]
+- d
+`
+
+ visited := []string{}
+ level := 0
+ Inspect(markdown, func(blockOrInline interface{}) bool {
+ if blockOrInline == nil {
+ level--
+ } else {
+ visited = append(visited, strings.Repeat(" ", level*4)+strings.TrimPrefix(fmt.Sprintf("%T", blockOrInline), "*markdown."))
+ level++
+ }
+ return true
+ })
+
+ assert.Equal(t, []string{
+ "Document",
+ " Paragraph",
+ " List",
+ " ListItem",
+ " Paragraph",
+ " Text",
+ " BlockQuote",
+ " Paragraph",
+ " InlineLink",
+ " InlineImage",
+ " SoftLineBreak",
+ " ReferenceLink",
+ " ReferenceImage",
+ " Text",
+ " ListItem",
+ " Paragraph",
+ " Text",
+ }, visited)
+}