Skip to content

Commit c2668d0

Browse files
chumaknadyamnaichuk
authored andcommitted
Fix: Error on adjustment creation without member
1 parent df123ef commit c2668d0

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

Diff for: app/api/v2/admin/adjustments.rb

+5-3
Original file line numberDiff line numberDiff line change
@@ -132,10 +132,12 @@ class Adjustments < Grape::API
132132
if adjustment.amount < 0
133133
account_number_hash = ::Operations.split_account_number(account_number: adjustment.receiving_account_number)
134134
member = Member.find_by(uid: account_number_hash[:member_uid])
135-
balance = member.get_account(account_number_hash[:currency_id]).balance
135+
if member.present?
136+
balance = member.get_account(account_number_hash[:currency_id]).balance
136137

137-
if adjustment.amount.abs() > balance
138-
error!({ errors: ['admin.adjustment.user_insufficient_balance'] }, 422)
138+
if adjustment.amount.abs() > balance
139+
error!({ errors: ['admin.adjustment.user_insufficient_balance'] }, 422)
140+
end
139141
end
140142
end
141143

Diff for: spec/api/v2/admin/adjustments_spec.rb

+16
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,22 @@
309309
}.not_to change { member.get_account(adjustment.currency).balance }
310310
end
311311

312+
context 'adjustment without member' do
313+
let!(:adjustment) { create(:adjustment, currency_id: 'btc', receiving_account_number: "btc-402-") }
314+
315+
it 'should accept adjustment' do
316+
adjustment.update(amount: -10000000.0)
317+
318+
expect {
319+
api_post '/api/v2/admin/adjustments/action', token: token, params: { id: adjustment.id, action: :accept }
320+
}.to change { adjustment.reload.state }.to('accepted')
321+
.and change { Operations::Asset.count }.by(1)
322+
.and change { Operations::Expense.count }.by(1)
323+
324+
expect(response).to be_successful
325+
end
326+
end
327+
312328
context 'already accepted' do
313329
let!(:adjustment) { create(:adjustment, currency_id: 'btc', receiving_account_number: "btc-202-#{member.uid}").tap { |a| a.accept!(validator: member) } }
314330

0 commit comments

Comments
 (0)