mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-25 13:54:05 -06:00
58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
package goldmark_test
|
|
|
|
import (
|
|
"encoding/json"
|
|
"io/ioutil"
|
|
"testing"
|
|
|
|
. "github.com/yuin/goldmark"
|
|
"github.com/yuin/goldmark/renderer/html"
|
|
"github.com/yuin/goldmark/testutil"
|
|
)
|
|
|
|
type commonmarkSpecTestCase struct {
|
|
Markdown string `json:"markdown"`
|
|
HTML string `json:"html"`
|
|
Example int `json:"example"`
|
|
StartLine int `json:"start_line"`
|
|
EndLine int `json:"end_line"`
|
|
Section string `json:"section"`
|
|
}
|
|
|
|
func TestSpec(t *testing.T) {
|
|
bs, err := ioutil.ReadFile("_test/spec.json")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
var testCases []commonmarkSpecTestCase
|
|
if err := json.Unmarshal(bs, &testCases); err != nil {
|
|
panic(err)
|
|
}
|
|
cases := []testutil.MarkdownTestCase{}
|
|
nos := testutil.ParseCliCaseArg()
|
|
for _, c := range testCases {
|
|
shouldAdd := len(nos) == 0
|
|
if !shouldAdd {
|
|
for _, no := range nos {
|
|
if c.Example == no {
|
|
shouldAdd = true
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
if shouldAdd {
|
|
cases = append(cases, testutil.MarkdownTestCase{
|
|
No: c.Example,
|
|
Markdown: c.Markdown,
|
|
Expected: c.HTML,
|
|
})
|
|
}
|
|
}
|
|
markdown := New(WithRendererOptions(
|
|
html.WithXHTML(),
|
|
html.WithUnsafe(),
|
|
))
|
|
testutil.DoTestCases(markdown, cases, t)
|
|
}
|