mirror of
https://github.com/rwinkhart/glamour-temp-MUTN.git
synced 2026-09-05 16:37:19 -04:00
test: made each issue a subtest
Allow each test to be a subtest, so users can run things like: ```sh go test -v ./... -run 'TestRendererIssues/107' ``` In order to run a single issue test, which helps when trying to fix a new one. Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
This commit is contained in:
committed by
Christian Muehlhaeuser
parent
5dc4fa673f
commit
1e311cd4e1
+57
-55
@@ -105,66 +105,68 @@ func TestRendererIssues(t *testing.T) {
|
|||||||
|
|
||||||
for _, f := range files {
|
for _, f := range files {
|
||||||
bn := strings.TrimSuffix(filepath.Base(f), ".md")
|
bn := strings.TrimSuffix(filepath.Base(f), ".md")
|
||||||
tn := filepath.Join(issuesDir, bn+".test")
|
t.Run(bn, func(t *testing.T) {
|
||||||
|
tn := filepath.Join(issuesDir, bn+".test")
|
||||||
|
|
||||||
in, err := ioutil.ReadFile(f)
|
in, err := ioutil.ReadFile(f)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
b, err := ioutil.ReadFile("../styles/dark.json")
|
b, err := ioutil.ReadFile("../styles/dark.json")
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
options := Options{
|
|
||||||
WordWrap: 80,
|
|
||||||
ColorProfile: termenv.TrueColor,
|
|
||||||
}
|
|
||||||
err = json.Unmarshal(b, &options.Styles)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
md := goldmark.New(
|
|
||||||
goldmark.WithExtensions(
|
|
||||||
extension.GFM,
|
|
||||||
extension.DefinitionList,
|
|
||||||
emoji.Emoji,
|
|
||||||
),
|
|
||||||
goldmark.WithParserOptions(
|
|
||||||
parser.WithAutoHeadingID(),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
ar := NewRenderer(options)
|
|
||||||
md.SetRenderer(
|
|
||||||
renderer.NewRenderer(
|
|
||||||
renderer.WithNodeRenderers(util.Prioritized(ar, 1000))))
|
|
||||||
|
|
||||||
var buf bytes.Buffer
|
|
||||||
err = md.Convert(in, &buf)
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// generate
|
|
||||||
if generateIssues {
|
|
||||||
err = ioutil.WriteFile(tn, buf.Bytes(), 0644)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
// verify
|
options := Options{
|
||||||
td, err := ioutil.ReadFile(tn)
|
WordWrap: 80,
|
||||||
if err != nil {
|
ColorProfile: termenv.TrueColor,
|
||||||
t.Fatal(err)
|
}
|
||||||
}
|
err = json.Unmarshal(b, &options.Styles)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
if !bytes.Equal(td, buf.Bytes()) {
|
md := goldmark.New(
|
||||||
t.Errorf("Rendered output for %s doesn't match!\nExpected: `\n%s`\nGot: `\n%s`\n",
|
goldmark.WithExtensions(
|
||||||
bn, string(td), buf.String())
|
extension.GFM,
|
||||||
}
|
extension.DefinitionList,
|
||||||
|
emoji.Emoji,
|
||||||
|
),
|
||||||
|
goldmark.WithParserOptions(
|
||||||
|
parser.WithAutoHeadingID(),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
ar := NewRenderer(options)
|
||||||
|
md.SetRenderer(
|
||||||
|
renderer.NewRenderer(
|
||||||
|
renderer.WithNodeRenderers(util.Prioritized(ar, 1000))))
|
||||||
|
|
||||||
|
var buf bytes.Buffer
|
||||||
|
err = md.Convert(in, &buf)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// generate
|
||||||
|
if generateIssues {
|
||||||
|
err = ioutil.WriteFile(tn, buf.Bytes(), 0644)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// verify
|
||||||
|
td, err := ioutil.ReadFile(tn)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !bytes.Equal(td, buf.Bytes()) {
|
||||||
|
t.Errorf("Rendered output for %s doesn't match!\nExpected: `\n%s`\nGot: `\n%s`\n",
|
||||||
|
bn, string(td), buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user