all repos

clerk @ 9444b5a

missing tooling for ledger/hledger

clerk/journal/semantic/context_test.go (view raw)

Oleksandr Smirnov Oleksandr Smirnov
olexsmir@gmail.com
journal: add semantic model, 1 month ago
1
package semantic
2
3
import (
4
	"bytes"
5
	"testing"
6
7
	"olexsmir.xyz/clerk/internal/testutil/golden"
8
	"olexsmir.xyz/clerk/journal"
9
)
10
11
func TestBuild(t *testing.T) {
12
	tests := map[string][]string{
13
		"empty":   {},
14
		"journal": {"journal"},
15
		"include": {"include0", "include1"},
16
	}
17
18
	for name, inputs := range tests {
19
		t.Run(name, func(t *testing.T) {
20
			var files []*journal.ParsedFile
21
			for _, in := range inputs {
22
				l := journal.NewLoader()
23
				pf, err := l.LoadBytes(in+".journal", golden.Load(t, in))
24
				if err != nil {
25
					t.Fatalf("LoadBytes(%q): %v", in, err)
26
				}
27
				files = append(files, pf)
28
			}
29
			ctx := Build(files)
30
31
			var buf bytes.Buffer
32
			fprint(&buf, ctx)
33
			golden.Assert(t, name, buf.String())
34
		})
35
	}
36
}