Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/pkg/river/printer/printer_test.go
4095 views
1
package printer_test
2
3
import (
4
"bytes"
5
"io/fs"
6
"os"
7
"path/filepath"
8
"strings"
9
"testing"
10
"unicode"
11
12
"github.com/grafana/agent/pkg/river/parser"
13
"github.com/grafana/agent/pkg/river/printer"
14
"github.com/stretchr/testify/require"
15
)
16
17
func TestPrinter(t *testing.T) {
18
filepath.WalkDir("testdata", func(path string, d fs.DirEntry, _ error) error {
19
if d.IsDir() {
20
return nil
21
}
22
23
if strings.HasSuffix(path, ".in") {
24
inputFile := path
25
expectFile := strings.TrimSuffix(path, ".in") + ".expect"
26
27
inputBB, err := os.ReadFile(inputFile)
28
require.NoError(t, err)
29
expectBB, err := os.ReadFile(expectFile)
30
require.NoError(t, err)
31
32
caseName := filepath.Base(path)
33
caseName = strings.TrimSuffix(caseName, ".in")
34
35
t.Run(caseName, func(t *testing.T) {
36
testPrinter(t, inputBB, expectBB)
37
})
38
}
39
40
return nil
41
})
42
}
43
44
func testPrinter(t *testing.T, input, expect []byte) {
45
f, err := parser.ParseFile(t.Name()+".rvr", input)
46
require.NoError(t, err)
47
48
var buf bytes.Buffer
49
require.NoError(t, printer.Fprint(&buf, f))
50
51
trimmed := strings.TrimRightFunc(string(expect), unicode.IsSpace)
52
require.Equal(t, trimmed, buf.String(), "%s", buf.String())
53
}
54
55