hledger/hledger/test/balance/balance.test
Simon Michael 6319d6148f feat: bal: with --declared, include declared leaf accounts (#1765)
Together with -E, this shows a balance for both used and declared
accounts (excluding empty parent accounts, which are usually not
wanted in list-mode reports).

This is somewhat consistent with --declared in the accounts and payees
commands, except for the leaf account restriction.

The idea of this is to be able to see a useful "complete" balance
report, even when you don't have transactions in all of your declared
accounts yet. I mainly want this for hledger-ui, but there's no harm
in exposing it in the balance CLI as well.
2021-11-23 09:47:04 -10:00

200 lines
4.8 KiB
Plaintext

# 1.
hledger -f sample.journal balance --tree
>>>
$-1 assets
$1 bank:saving
$-2 cash
$2 expenses
$1 food
$1 supplies
$-2 income
$-1 gifts
$-1 salary
$1 liabilities:debts
--------------------
0
>>>=0
# 2.
hledger -f sample.journal balance --tree o
>>>
$1 expenses:food
$-2 income
$-1 gifts
$-1 salary
--------------------
$-1
>>>=0
# 3. Period reporting works for a specific year
hledger -f - balance -b 2016 -e 2017 -N
<<<
2015/10/10 Client A | Invoice #1
assets:receivables $10,000.00
revenue:clients:A -$10,000.00
2015/11/02 Deposit | Invoice #1
assets:checking $10,000.00
assets:receivables -$10,000.00
2016/02/01 Client B | Invoice #2
assets:receivables $10.00
revenue:clients:B -$10.00
2016/02/15 ACME | Hosting Costs
expense:hosting $50.00
assets:checking -$50.00
2016/03/01 Deposit | Invoice #2
assets:checking $10.00
assets:receivables -$10.00
>>>
$-40.00 assets:checking
$50.00 expense:hosting
$-10.00 revenue:clients:B
>>>2
>>>= 0
# 4. Period reporting works for two years
hledger -f - balance --tree -b 2015 -e 2017 -N
<<<
2015/10/10 Client A | Invoice #1
assets:receivables $10,000.00
revenue:clients:A -$10,000.00
2015/11/02 Deposit | Invoice #1
assets:checking $10,000.00
assets:receivables -$10,000.00
2016/02/01 Client B | Invoice #2
assets:receivables $10.00
revenue:clients:B -$10.00
2016/02/15 ACME | Hosting Costs
expense:hosting $50.00
assets:checking -$50.00
2016/03/01 Deposit | Invoice #2
assets:checking $10.00
assets:receivables -$10.00
>>>
$9,960.00 assets:checking
$50.00 expense:hosting
$-10,010.00 revenue:clients
$-10,000.00 A
$-10.00 B
>>>2
>>>= 0
# 5. Period reporting works for one month
hledger -f - balance --tree -b 2015/11 -e 2015/12 -N
<<<
2015/10/10 Client A | Invoice #1
assets:receivables $10,000.00
revenue:clients:A -$10,000.00
2015/11/02 Deposit | Invoice #1
assets:checking $10,000.00
assets:receivables -$10,000.00
2016/02/01 Client B | Invoice #2
assets:receivables $10.00
revenue:clients:B -$10.00
2016/02/15 ACME | Hosting Costs
expense:hosting $50.00
assets:checking -$50.00
2016/03/01 Deposit | Invoice #2
assets:checking $10.00
assets:receivables -$10.00
>>>
0 assets
$10,000.00 checking
$-10,000.00 receivables
>>>2
>>>= 0
# 6. Period reporting works for one month in another year
hledger -f - balance -b 2016/10 -e 2016/11
<<<
2015/10/10 Client A | Invoice #1
assets:receivables $10,000.00
revenue:clients:A -$10,000.00
2015/11/02 Deposit | Invoice #1
assets:checking $10,000.00
assets:receivables -$10,000.00
2016/02/01 Client B | Invoice #2
assets:receivables $10.00
revenue:clients:B -$10.00
2016/02/15 ACME | Hosting Costs
expense:hosting $50.00
assets:checking -$50.00
2016/03/01 Deposit | Invoice #2
assets:checking $10.00
assets:receivables -$10.00
>>>
--------------------
0
>>>2
>>>= 0
# 7. Default CSV output.
hledger -f - balance -N --output-format=csv
<<<
2021-01-01 Test
Assets:ABC "AB.C" 1
Assets:Cash -$1
>>>
"account","balance"
"Assets:ABC","""AB.C"" 1"
"Assets:Cash","$-1"
>>>= 0
# 8. CSV output always shows full account names, even in tree mode (#1565).
hledger -f - balance -N --output-format=csv --tree
<<<
2021-01-01 Test
Assets:ABC "AB.C" 1
Assets:Cash -$1
>>>
"account","balance"
"Assets","$-1, ""AB.C"" 1"
"Assets:ABC","""AB.C"" 1"
"Assets:Cash","$-1"
>>>= 0
# 9. --declared includes all declared leaf accounts, even if they have no postings.
# They are filtered, depth-clipped, and form trees like the others.
hledger -f - balance -NE --declared --tree --depth 2 a
<<<
account a
account a:aa
account a:ab
account a:ac:aca
account b
>>>
0 a
0 aa
0 ab
>>>= 0
# 10. In list mode we can see that non-leaf declared accounts are excluded.
hledger -f - balance -NE --declared --flat
<<<
account a
account a:aa
account a:ab
account a:ac:aca
account b
>>>
0 a:aa
0 a:ab
0 a:ac:aca
0 b
>>>= 0