Module: Twobook::Helpers

Defined in:
lib/twobook/helpers.rb

Instance Method Summary collapse

Instance Method Details

#expect_account_balances(accounts, table) ⇒ Object



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 (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