spec/mangopay/transfer_spec.rb in mangopay-3.0.25.pre.alpha.pre.20 vs spec/mangopay/transfer_spec.rb in mangopay-3.0.25

- old
+ new

@@ -1,69 +1,69 @@ -describe MangoPay::Transfer, type: :feature do - include_context 'wallets' - include_context 'payins' - include_context 'transfers' - - def check_type_and_status(trans) - expect(trans['Type']).to eq('TRANSFER') - expect(trans['Nature']).to eq('REGULAR') - - # SUCCEEDED - expect(trans['Status']).to eq('SUCCEEDED') - expect(trans['ResultCode']).to eq('000000') - expect(trans['ResultMessage']).to eq('Success') - expect(trans['ExecutionDate']).to be > 0 - end - - describe 'CREATE' do - it 'creates a new Transfer' do - created = new_transfer - expect(created['Id']).not_to be_nil - check_type_and_status(created) - end - end - - describe 'FETCH' do - it 'fetches a Transfer' do - created = new_transfer - fetched = MangoPay::Transfer.fetch(created['Id']) - expect(fetched['Id']).to eq(created['Id']) - check_type_and_status(created) - check_type_and_status(fetched) - end - end - - describe 'REFUND' do - it 'refunds a transfer' do - trans = new_transfer - refund = MangoPay::Transfer.refund(trans['Id'], {AuthorId: trans['AuthorId']}) - expect(refund['Id']).not_to be_nil - expect(refund['Status']).to eq('SUCCEEDED') - expect(refund['Type']).to eq('TRANSFER') - expect(refund['Nature']).to eq('REFUND') - expect(refund['InitialTransactionType']).to eq('TRANSFER') - expect(refund['InitialTransactionId']).to eq(trans['Id']) - expect(refund['DebitedWalletId']).to eq(trans['CreditedWalletId']) - expect(refund['CreditedWalletId']).to eq(trans['DebitedWalletId']) - end - end - - describe 'CASH FLOW' do - it 'changes balances correctly' do - wlt1 = new_wallet - wlt2 = new_wallet_legal - wallets_check_amounts(wlt1, 0, wlt2, 0) - - # payin: feed wlt1 with money - create_new_payin_card_direct(wlt1, 1000) - wallets_reload_and_check_amounts(wlt1, 1000, wlt2, 0) - - # trnasfer wlt1 => wlt2 - trans = create_new_transfer(wlt1, wlt2, 600) - wallets_reload_and_check_amounts(wlt1, 400, wlt2, 600) - - # refund the trnasfer - refund = MangoPay::Transfer.refund(trans['Id'], {AuthorId: trans['AuthorId']}) - wallets_reload_and_check_amounts(wlt1, 1000, wlt2, 0) - end - end -end +describe MangoPay::Transfer, type: :feature do + include_context 'wallets' + include_context 'payins' + include_context 'transfers' + + def check_type_and_status(trans) + expect(trans['Type']).to eq('TRANSFER') + expect(trans['Nature']).to eq('REGULAR') + + # SUCCEEDED + expect(trans['Status']).to eq('SUCCEEDED') + expect(trans['ResultCode']).to eq('000000') + expect(trans['ResultMessage']).to eq('Success') + expect(trans['ExecutionDate']).to be > 0 + end + + describe 'CREATE' do + it 'creates a new Transfer' do + created = new_transfer + expect(created['Id']).not_to be_nil + check_type_and_status(created) + end + end + + describe 'FETCH' do + it 'fetches a Transfer' do + created = new_transfer + fetched = MangoPay::Transfer.fetch(created['Id']) + expect(fetched['Id']).to eq(created['Id']) + check_type_and_status(created) + check_type_and_status(fetched) + end + end + + describe 'REFUND' do + it 'refunds a transfer' do + trans = new_transfer + refund = MangoPay::Transfer.refund(trans['Id'], {AuthorId: trans['AuthorId']}) + expect(refund['Id']).not_to be_nil + expect(refund['Status']).to eq('SUCCEEDED') + expect(refund['Type']).to eq('TRANSFER') + expect(refund['Nature']).to eq('REFUND') + expect(refund['InitialTransactionType']).to eq('TRANSFER') + expect(refund['InitialTransactionId']).to eq(trans['Id']) + expect(refund['DebitedWalletId']).to eq(trans['CreditedWalletId']) + expect(refund['CreditedWalletId']).to eq(trans['DebitedWalletId']) + end + end + + describe 'CASH FLOW' do + it 'changes balances correctly' do + wlt1 = new_wallet + wlt2 = new_wallet_legal + wallets_check_amounts(wlt1, 0, wlt2, 0) + + # payin: feed wlt1 with money + create_new_payin_card_direct(wlt1, 1000) + wallets_reload_and_check_amounts(wlt1, 1000, wlt2, 0) + + # trnasfer wlt1 => wlt2 + trans = create_new_transfer(wlt1, wlt2, 600) + wallets_reload_and_check_amounts(wlt1, 400, wlt2, 600) + + # refund the trnasfer + refund = MangoPay::Transfer.refund(trans['Id'], {AuthorId: trans['AuthorId']}) + wallets_reload_and_check_amounts(wlt1, 1000, wlt2, 0) + end + end +end