102 lines
3.8 KiB
Ruby
102 lines
3.8 KiB
Ruby
# encoding: UTF-8
|
|
# frozen_string_literal: true
|
|
|
|
describe API::V2::Admin::InternalTransfers, type: :request do
|
|
let(:endpoint) { '/api/v2/admin/internal_transfers' }
|
|
let(:admin) { create(:member, :admin, :level_3, email: 'example@gmail.com', uid: 'ID73BF61C8H0', username: 'test') }
|
|
let(:token) { jwt_for(admin) }
|
|
let(:level_3_member) { create(:member, :level_3, uid: 'ID84BF61C8H0', username: 'member') }
|
|
let(:level_3_member_token) { jwt_for(level_3_member) }
|
|
|
|
describe 'GET /api/v2/admin/internal_transfer' do
|
|
let!(:internal_transfer_btc) { create_list(:internal_transfer_btc, 4, :with_deposit_liability, sender: admin, receiver: level_3_member) }
|
|
let!(:internal_transfer_usd) { create_list(:internal_transfer_usd, 3, :with_deposit_liability, sender: level_3_member) }
|
|
|
|
it 'lists of internal transfers' do
|
|
api_get endpoint, token: token
|
|
|
|
expect(response).to be_successful
|
|
expect(response_body.size).to eq 7
|
|
end
|
|
|
|
it 'returns paginated internal transfers' do
|
|
api_get endpoint, params: { limit: 1, page: 1 }, token: token
|
|
|
|
expect(response).to be_successful
|
|
expect(response.headers.fetch('Total')).to eq '7'
|
|
expect(response_body.size).to eq 1
|
|
|
|
api_get endpoint, params: { limit: 1, page: 2 }, token: token
|
|
|
|
expect(response).to be_successful
|
|
expect(response.headers.fetch('Total')).to eq '7'
|
|
expect(response_body.size).to eq 1
|
|
end
|
|
|
|
it 'returns internal transfers by desc order' do
|
|
api_get endpoint, params: { ordering: 'desc' }, token: token
|
|
|
|
expect(response).to be_successful
|
|
expect(response_body.first['id']).to eq InternalTransfer.last.id
|
|
end
|
|
|
|
it 'returns internal transfers by ascending order' do
|
|
api_get endpoint, params: { ordering: 'asc' }, token: token
|
|
|
|
expect(response).to be_successful
|
|
expect(response_body.first['id']).to eq InternalTransfer.first.id
|
|
end
|
|
|
|
it 'return error in case of not permitted ability' do
|
|
api_get endpoint, token: level_3_member_token
|
|
|
|
expect(response.code).to eq '403'
|
|
expect(response).to include_api_error('admin.ability.not_permitted')
|
|
end
|
|
|
|
context 'filtering' do
|
|
it 'by currency' do
|
|
api_get endpoint, token: token, params: { currency: 'btc' }
|
|
|
|
expect(response_body.count).to eq(InternalTransfer.where(currency_id: 'btc').count)
|
|
end
|
|
|
|
it 'returns orders for specific sender by uid' do
|
|
api_get endpoint, params: { sender: admin.uid }, token: token
|
|
result = JSON.parse(response.body)
|
|
|
|
expect(response).to be_successful
|
|
expect(result.map{|r| r['sender_uid']}.size).to eq 4
|
|
expect(result.map{|r| r['sender_uid']}).to all eq admin.uid
|
|
end
|
|
|
|
it 'returns orders for specific sender by username' do
|
|
api_get endpoint, params: { sender: admin.username }, token: token
|
|
result = JSON.parse(response.body)
|
|
|
|
expect(response).to be_successful
|
|
expect(result.map{|r| r['sender_username']}.size).to eq 4
|
|
expect(result.map{|r| r['sender_username']}).to all eq admin.username
|
|
end
|
|
|
|
it 'returns orders for specific receiver by uid' do
|
|
api_get endpoint, params: { receiver: level_3_member.uid }, token: token
|
|
result = JSON.parse(response.body)
|
|
|
|
expect(response).to be_successful
|
|
expect(result.map{|r| r['receiver_uid']}.size).to eq 4
|
|
expect(result.map{|r| r['receiver_uid']}).to all eq level_3_member.uid
|
|
end
|
|
|
|
it 'returns orders for specific receiver by username' do
|
|
api_get endpoint, params: { receiver: level_3_member.username }, token: token
|
|
result = JSON.parse(response.body)
|
|
|
|
expect(response).to be_successful
|
|
expect(result.map{|r| r['receiver_username']}.size).to eq 4
|
|
expect(result.map{|r| r['receiver_username']}).to all eq level_3_member.username
|
|
end
|
|
end
|
|
end
|
|
end
|