hledger/tests/add/add.test
2014-05-06 21:02:58 -07:00

114 lines
1.8 KiB
Plaintext

##############################################################################
# data validation
#
# 1. should prompt again for a bad date
hledgerdev -f $$-add.j add; rm -f $$-add.j
<<<
2009/1/32
>>> /A valid hledger smart date is required/
>>>=0
# 2. should accept a blank date
hledgerdev -f $$-add.j add; rm -f $$-add.j
<<<
>>> /Date .*Description:/
>>>=0
##############################################################################
# precision and commodity handling
#
# 3. simple add with no existing journal, no commodity entered
hledgerdev -f $$-add.j add; rm -f $$-add.j
<<<
a
1000.0
b
.
>>> /Date.*Description.*Account 1.*Amount 1.*Account 2.*Amount 2.*Account 3.*or \. or enter to finish.*/
>>>=0
# 4. default commodity with greater precision
printf 'D $1000.00\n' >t$$.j; hledgerdev -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
<<<
a
$1000.0
b
.
>>> /a +\$1000\.0/
>>>=0
# 5. default commodity with less precision
printf 'D $1000.0\n' >t$$.j; hledgerdev -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
<<<
a
$1000.00
b
.
>>> /a +\$1000\.00/
>>>=0
# 6. existing commodity with greater precision
printf '2010/1/1\n a $1000.00\n b\n' >t$$.j; hledgerdev -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
<<<
a
$1000.0
b
.
>>> /a +\$1000\.0/
>>>=0
# 7. existing commodity with less precision
printf '2010/1/1\n a $1000.0\n b\n' >t$$.j; hledgerdev -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
<<<
a
$1000.00
b
.
>>> /a +\$1000\.00/
>>>=0
# 8. default amounts should not fail to balance due to precision
rm -f nosuch.journal; hledgerdev -f nosuch.journal add; rm -f nosuch.journal
<<<
2010/1/1
x
a
0.25
b
0.5
c
>>> /Amount 3 \[-0.75\]:/
>>>=0
## 9. shouldn't add decimals if there aren't any
## printf '\n\na\n1\nb\n' | hledgerdev -f /dev/null add
# hledgerdev -f /dev/null add
# <<<
# a
# 1
# b
# >>> /amount 2 \[-1\]/
# >>>=0