mirror of
https://github.com/rwinkhart/glamour-temp-MUTN.git
synced 2026-09-05 08:27:18 -04:00
Add tests for ANSIRenderer
This commit is contained in:
@@ -0,0 +1,92 @@
|
|||||||
|
package ansi
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
|
"io/ioutil"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/yuin/goldmark"
|
||||||
|
"github.com/yuin/goldmark/extension"
|
||||||
|
"github.com/yuin/goldmark/parser"
|
||||||
|
"github.com/yuin/goldmark/renderer"
|
||||||
|
"github.com/yuin/goldmark/util"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
examplesDir = "../styles/examples/"
|
||||||
|
generate = false
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestRenderer(t *testing.T) {
|
||||||
|
files, err := filepath.Glob(examplesDir + "*.md")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, f := range files {
|
||||||
|
bn := strings.TrimSuffix(filepath.Base(f), ".md")
|
||||||
|
sn := filepath.Join(examplesDir, bn+".style")
|
||||||
|
tn := filepath.Join(examplesDir, bn+".test")
|
||||||
|
|
||||||
|
in, err := ioutil.ReadFile(f)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
b, err := ioutil.ReadFile(sn)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
options := Options{
|
||||||
|
WordWrap: 80,
|
||||||
|
}
|
||||||
|
err = json.Unmarshal(b, &options.Styles)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
md := goldmark.New(
|
||||||
|
goldmark.WithExtensions(
|
||||||
|
extension.GFM,
|
||||||
|
extension.DefinitionList,
|
||||||
|
),
|
||||||
|
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 generate {
|
||||||
|
err = ioutil.WriteFile(tn, buf.Bytes(), 0644)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
[38;5;200m[0m[38;5;200m[0m[38;5;200mFirst line of[0m[38;5;200m quote[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[0m[0m
|
||||||
|
[0m[38;5;200m[0m[38;5;200m[0m[38;5;200mSecond[0m[38;5;200m line[0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[38;5;200m [0m[0m[0m
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
This is a [38;5;200mcode[0m. [0m[0m
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
This is a code block.
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
This text is [3memphasized[0m. [0m[0m
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
[97;48;5;52m[0m[97;48;5;52m[0m[97;48;5;52m1[0m[97;48;5;52m. [0m[97;48;5;52mFirst[0m[97;48;5;52m Item[0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[0m[0m
|
||||||
|
[97;48;5;52m[0m[97;48;5;52m[0m[97;48;5;52m2[0m[97;48;5;52m. [0m[97;48;5;52mSecond[0m[97;48;5;52m Item[0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[0m[0m
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[1;97;48;5;69m[0m[0m [1;97;48;5;69m=> [0m[97;48;5;69mh1[0m[1;97;48;5;69m <=[0m [0m
|
||||||
|
[97;48;5;57m[0m[0m [97;48;5;57m## [0m[97;48;5;57mh2[0m [0m
|
||||||
|
[97;48;5;57m[0m[0m [97;48;5;57m### [0m[97;48;5;57mh3[0m
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
---
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
[90m[0m[90m[0m[90mImage[0m [Image: [38;5;123mhttps://charm.sh/logo.png[0m]. [0m[0m
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
This is a [1;38;5;123mlink[0m ([4;38;5;123mhttps://charm.sh[0m). [0m[0m
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
[97;48;5;52m[0m[97;48;5;52m[0m[97;48;5;52m• [0m[97;48;5;52mFirst[0m[97;48;5;52m Item[0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[0m[0m
|
||||||
|
[97;48;5;52m[0m[97;48;5;52m[0m[97;48;5;52m[0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m• [0m[97;48;5;52mNested List[0m[97;48;5;52m Item[0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[0m[0m[0m
|
||||||
|
[97;48;5;52m[0m[97;48;5;52m[0m[97;48;5;52m• [0m[97;48;5;52mSecond[0m[97;48;5;52m Item[0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[0m[0m
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
This text is [1mstrong[0m. [0m[0m
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
+--------+-------+
|
||||||
|
| LABEL | VALUE |
|
||||||
|
+--------+-------+
|
||||||
|
| First | foo |
|
||||||
|
| Second | bar |
|
||||||
|
+--------+-------+
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
[97;48;5;52m[0m[97;48;5;52m[0m[97;48;5;52m✓ [0m[97;48;5;52mFinished[0m[97;48;5;52m Task[0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[0m[0m
|
||||||
|
[97;48;5;52m[0m[97;48;5;52m[0m[97;48;5;52m✗ [0m[97;48;5;52mOutstanding[0m[97;48;5;52m Task[0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[97;48;5;52m [0m[0m[0m
|
||||||
Reference in New Issue
Block a user