clerk/journal/printer/printer_test.go (view raw)
| 1 | package printer |
| 2 | |
| 3 | import ( |
| 4 | "strings" |
| 5 | "testing" |
| 6 | |
| 7 | "olexsmir.xyz/clerk/internal/testutil/golden" |
| 8 | "olexsmir.xyz/clerk/journal" |
| 9 | ) |
| 10 | |
| 11 | // TODO: test with custom config options |
| 12 | |
| 13 | func TestRoundTrip(t *testing.T) { |
| 14 | tests := []string{"accounts", "basic", "entries", "amounts", "directives", "sample"} |
| 15 | for _, tname := range tests { |
| 16 | t.Run(tname, func(t *testing.T) { |
| 17 | inp := golden.Load(t, tname) |
| 18 | |
| 19 | pf, err := journal.NewLoader().LoadBytes(tname+".journal", inp) |
| 20 | if err != nil { |
| 21 | t.Fatal(err) |
| 22 | } |
| 23 | var b strings.Builder |
| 24 | if err := defaultConfig.Fprint(&b, pf.Ast); err != nil { |
| 25 | t.Fatal(err) |
| 26 | } |
| 27 | |
| 28 | golden.AssertInput(t, b.String(), tname) |
| 29 | }) |
| 30 | } |
| 31 | } |