mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 13:19:39 +02:00
Only update account balance if changed (#1676)
* Only update balance if changed * Update test assertions
This commit is contained in:
parent
61321f6b16
commit
43dd16e3fb
2 changed files with 6 additions and 4 deletions
|
@ -135,9 +135,11 @@ class Account < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_with_sync!(attributes)
|
def update_with_sync!(attributes)
|
||||||
|
should_update_balance = attributes[:balance] && attributes[:balance].to_d != balance
|
||||||
|
|
||||||
transaction do
|
transaction do
|
||||||
update!(attributes)
|
update!(attributes)
|
||||||
update_balance!(attributes[:balance]) if attributes[:balance]
|
update_balance!(attributes[:balance]) if should_update_balance
|
||||||
end
|
end
|
||||||
|
|
||||||
sync_later
|
sync_later
|
||||||
|
|
|
@ -61,11 +61,11 @@ module AccountableResourceInterfaceTest
|
||||||
assert_equal "#{@account.accountable_name.humanize} account created", flash[:notice]
|
assert_equal "#{@account.accountable_name.humanize} account created", flash[:notice]
|
||||||
end
|
end
|
||||||
|
|
||||||
test "updates account balance by creating new valuation" do
|
test "updates account balance by creating new valuation if balance has changed" do
|
||||||
assert_difference [ "Account::Entry.count", "Account::Valuation.count" ], 1 do
|
assert_difference [ "Account::Entry.count", "Account::Valuation.count" ], 1 do
|
||||||
patch account_url(@account), params: {
|
patch account_url(@account), params: {
|
||||||
account: {
|
account: {
|
||||||
balance: 10000
|
balance: 12000
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
@ -81,7 +81,7 @@ module AccountableResourceInterfaceTest
|
||||||
assert_no_difference [ "Account::Entry.count", "Account::Valuation.count" ] do
|
assert_no_difference [ "Account::Entry.count", "Account::Valuation.count" ] do
|
||||||
patch account_url(@account), params: {
|
patch account_url(@account), params: {
|
||||||
account: {
|
account: {
|
||||||
balance: 10000
|
balance: 12000
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue