tdd
parent
fc33375d49
commit
ff815a7169
|
|
@ -10,7 +10,7 @@ func NewFiles(p string, q ...string) (Files, error) {
|
||||||
return f, err
|
return f, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (files Files) Add(delta Delta) error {
|
func (files Files) Add(payee string, delta Delta) error {
|
||||||
// TODO
|
// TODO
|
||||||
return io.EOF
|
return io.EOF
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,94 @@
|
||||||
package ledger
|
package ledger
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"os"
|
||||||
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestFileAdd(t *testing.T) {
|
||||||
|
payee := "name:3"
|
||||||
|
delta := Delta{
|
||||||
|
Date: "2999-88-77",
|
||||||
|
Description: "66",
|
||||||
|
Name: "name:1",
|
||||||
|
Value: 2.00,
|
||||||
|
Currency: USD,
|
||||||
|
}
|
||||||
|
cases := map[string]struct {
|
||||||
|
given []byte
|
||||||
|
want string
|
||||||
|
}{
|
||||||
|
"no file": {
|
||||||
|
given: nil,
|
||||||
|
want: `2999-88-77 66
|
||||||
|
name:1 $2.00
|
||||||
|
name:3`,
|
||||||
|
},
|
||||||
|
"empty file": {
|
||||||
|
given: []byte{},
|
||||||
|
want: `2999-88-77 66
|
||||||
|
name:1 $2.00
|
||||||
|
name:3`,
|
||||||
|
},
|
||||||
|
"happy without trailing whitespace": {
|
||||||
|
given: []byte(`
|
||||||
|
2000-01-02 desc
|
||||||
|
name:1 $1.00
|
||||||
|
name:2 $-1.00`),
|
||||||
|
want: `
|
||||||
|
2000-01-02 desc
|
||||||
|
name:1 $1.00
|
||||||
|
name:2 $-1.00
|
||||||
|
2999-88-77 66
|
||||||
|
name:1 $2.00
|
||||||
|
name:3`,
|
||||||
|
},
|
||||||
|
"happy with trailing newline": {
|
||||||
|
given: []byte(`
|
||||||
|
2000-01-02 desc
|
||||||
|
name:1 $1.00
|
||||||
|
name:2 $-1.00
|
||||||
|
`),
|
||||||
|
want: `
|
||||||
|
2000-01-02 desc
|
||||||
|
name:1 $1.00
|
||||||
|
name:2 $-1.00
|
||||||
|
2999-88-77 66
|
||||||
|
name:1 $2.00
|
||||||
|
name:3`,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for name, d := range cases {
|
||||||
|
c := d
|
||||||
|
t.Run(name, func(t *testing.T) {
|
||||||
|
p := path.Join(t.TempDir(), "input")
|
||||||
|
if c.given != nil {
|
||||||
|
if err := os.WriteFile(p, []byte(c.given), os.ModePerm); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
f, err := NewFiles(p)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := f.Add(payee, delta); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if got, err := os.ReadFile(p); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
} else if string(got) != c.want {
|
||||||
|
t.Errorf("wanted\n\t%s, got\n\t%s", c.want, got)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestFileTestdata(t *testing.T) {
|
func TestFileTestdata(t *testing.T) {
|
||||||
t.Run("macro.d", func(t *testing.T) {
|
t.Run("macro.d", func(t *testing.T) {
|
||||||
paths, err := filepath.Glob("./testdata/macro.d/*")
|
paths, err := filepath.Glob("./testdata/macro.d/*")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue