Files
glamour-temp-MUTN/glamour_test.go
T

131 lines
2.0 KiB
Go

package glamour
import (
"bytes"
"io/ioutil"
"testing"
)
const (
generate = false
markdown = "testdata/readme.markdown.in"
testFile = "testdata/readme.test"
)
func TestTermRendererWriter(t *testing.T) {
r, err := NewTermRenderer(
WithStandardStyle("dark"),
)
if err != nil {
t.Fatal(err)
}
in, err := ioutil.ReadFile(markdown)
if err != nil {
t.Fatal(err)
}
_, err = r.Write(in)
if err != nil {
t.Fatal(err)
}
err = r.Close()
if err != nil {
t.Fatal(err)
}
b, err := ioutil.ReadAll(r)
if err != nil {
t.Fatal(err)
}
// generate
if generate {
err := ioutil.WriteFile(testFile, b, 0644)
if err != nil {
t.Fatal(err)
}
return
}
// verify
td, err := ioutil.ReadFile(testFile)
if err != nil {
t.Fatal(err)
}
if !bytes.Equal(td, b) {
t.Errorf("Rendered output doesn't match!\nExpected: `\n%s`\nGot: `\n%s`\n",
string(td), b)
}
}
func TestTermRenderer(t *testing.T) {
r, err := NewTermRenderer(
WithStandardStyle("dark"),
)
if err != nil {
t.Fatal(err)
}
in, err := ioutil.ReadFile(markdown)
if err != nil {
t.Fatal(err)
}
b, err := r.Render(string(in))
if err != nil {
t.Fatal(err)
}
// verify
td, err := ioutil.ReadFile(testFile)
if err != nil {
t.Fatal(err)
}
if !bytes.Equal(td, []byte(b)) {
t.Errorf("Rendered output doesn't match!\nExpected: `\n%s`\nGot: `\n%s`\n",
string(td), b)
}
}
func TestStyles(t *testing.T) {
_, err := NewTermRenderer(
WithAutoStyle(),
)
if err != nil {
t.Fatal(err)
}
_, err = NewTermRenderer(
WithStandardStyle("auto"),
)
if err != nil {
t.Fatal(err)
}
}
func TestRenderHelpers(t *testing.T) {
in, err := ioutil.ReadFile(markdown)
if err != nil {
t.Fatal(err)
}
b, err := Render(string(in), "dark")
if err != nil {
t.Error(err)
}
// verify
td, err := ioutil.ReadFile(testFile)
if err != nil {
t.Fatal(err)
}
if b != string(td) {
t.Errorf("Rendered output doesn't match!\nExpected: `\n%s`\nGot: `\n%s`\n",
string(td), b)
}
}