-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain_test.go
More file actions
103 lines (93 loc) · 1.97 KB
/
main_test.go
File metadata and controls
103 lines (93 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package main
import (
"bytes"
"os"
"strings"
"testing"
)
const (
inputFile = "./testdata/test1.md"
resultFile = "test1.md.html"
goldenFile = "./testdata/test1.md.html"
)
func TestParseContent(t *testing.T) {
data, err := os.ReadFile(inputFile)
if err != nil {
t.Fatal(err)
}
result, err := os.ReadFile(goldenFile)
if err != nil {
t.Fatal(err)
}
expected, err := parseContent(data, "")
if err != nil {
t.Fatal(err)
}
if !bytes.Equal(result, expected) {
t.Logf("golden:\n%s\n", expected)
t.Logf("result:\n%s\n", result)
t.Errorf("Result content does not match golden file")
}
}
func TestRunWithFile(t *testing.T) {
var mockStdOut bytes.Buffer
c := config{
fileName: inputFile,
skipPreview: true,
tfname: "",
out: &mockStdOut,
in: nil,
}
if err := run(c); err != nil {
t.Fatal(err)
}
fileName := strings.TrimSpace(mockStdOut.String())
result, err := os.ReadFile(fileName)
if err != nil {
t.Fatal(err)
}
expected, err := os.ReadFile(goldenFile)
if err != nil {
t.Fatal(err)
}
if !bytes.Equal(result, expected) {
t.Logf("golden:\n%s\n", expected)
t.Logf("result:\n%s\n", result)
t.Errorf("Result content does not match golden file")
}
os.Remove(fileName)
}
func TestRunWithStdIn(t *testing.T) {
var mockStdOut bytes.Buffer
var mockStdIn bytes.Buffer
data, err := os.ReadFile(inputFile)
if err != nil {
t.Fatal(err)
}
mockStdIn.Write(data)
c := config{
fileName: "",
skipPreview: true,
tfname: "",
out: &mockStdOut,
in: &mockStdIn,
}
if err := run(c); err != nil {
t.Fatal(err)
}
fileName := strings.TrimSpace(mockStdOut.String())
result, err := os.ReadFile(fileName)
if err != nil {
t.Fatal(err)
}
expected, err := os.ReadFile(goldenFile)
if err != nil {
t.Fatal(err)
}
if !bytes.Equal(result, expected) {
t.Logf("golden:\n%s\n", expected)
t.Logf("result:\n%s\n", result)
t.Errorf("Result content does not match golden file")
}
os.Remove(fileName)
}