7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/twobook/helpers.rb', line 7
def expect_account_balances(accounts, table)
table.each_slice(2) do |name_or_category, total_balance|
query, reason = (
if name_or_category =~ /:/
[
Twobook::AccountQuery.where(name: name_or_category),
"expected balance of account \"#{name_or_category}\" to be #{total_balance}, got %s",
]
else
[
Twobook::AccountQuery.where(category: name_or_category),
"expected sum of accounts in category \"#{name_or_category}\" to be #{total_balance}, got %s",
]
end
)
balance = query.on(accounts).map(&:balance).sum
expect(balance).to be_within(0.01).of(total_balance), format(reason, balance)
end
end
|