48 lines
1.9 KiB
Ruby
48 lines
1.9 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
|
|
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
|
|
require 'rails_helper'
|
|
|
|
describe UpdateCharges do
|
|
describe '.disburse_all_with_payments', pending: true do
|
|
it 'test' do
|
|
raise
|
|
end
|
|
end
|
|
|
|
describe '.reverse_disburse_all_with_payments' do
|
|
let(:payment_to_reverse) { force_create(:payment) }
|
|
let(:payment_to_ignore) { force_create(:payment) }
|
|
let(:payment_to_reverse_2) { force_create(:payment) }
|
|
|
|
let(:payment_to_reverse_with_refund) { force_create(:payment) }
|
|
let(:reverse_payment_for_refund) { force_create(:payment) }
|
|
let!(:charges) do
|
|
[force_create(:charge, payment: payment_to_reverse, status: 'disbursed'),
|
|
force_create(:charge, payment: payment_to_reverse_2, status: 'disbursed'),
|
|
force_create(:charge, payment: payment_to_ignore, status: 'disbursed'),
|
|
force_create(:charge, payment: payment_to_reverse_with_refund, status: 'disbursed')]
|
|
end
|
|
|
|
let!(:refunds) { [force_create(:refund, charge: charges.last, payment: reverse_payment_for_refund, disbursed: true)] }
|
|
before(:each) do
|
|
UpdateCharges.reverse_disburse_all_with_payments([payment_to_reverse.id, payment_to_reverse_2.id, payment_to_reverse_with_refund.id, reverse_payment_for_refund.id])
|
|
|
|
payment_to_reverse.reload
|
|
payment_to_reverse_2.reload
|
|
payment_to_reverse_with_refund.reload
|
|
payment_to_ignore.reload
|
|
end
|
|
|
|
it 'reverses payments it should' do
|
|
expect(payment_to_reverse.charge.status).to eq 'available'
|
|
expect(payment_to_reverse_2.charge.status).to eq 'available'
|
|
expect(payment_to_reverse_with_refund.charge.status).to eq 'available'
|
|
end
|
|
|
|
it 'does not reverse other payments' do
|
|
expect(payment_to_ignore.charge.status).to eq 'disbursed'
|
|
end
|
|
end
|
|
end
|