Initial commit
This commit is contained in:
43
spec/lib/peatio/airdrop_spec.rb
Normal file
43
spec/lib/peatio/airdrop_spec.rb
Normal file
@@ -0,0 +1,43 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
RSpec.describe Peatio::Airdrop do
|
||||
let(:test_file) { File.read(Rails.root.join('spec', 'resources', 'airdrops', file_name)) }
|
||||
let(:file_name) { '1.csv' }
|
||||
let(:src_user) { create(:member, role: :admin) }
|
||||
let(:uids) { %w[UID120 UID121 UID122 UID123 UID124] }
|
||||
|
||||
before do
|
||||
deposit = create(:deposit_btc, member: src_user, amount: 1000)
|
||||
deposit.accept!
|
||||
deposit.process!
|
||||
deposit.dispatch!
|
||||
uids.each do |uid|
|
||||
create(:member, uid: uid)
|
||||
end
|
||||
end
|
||||
|
||||
subject(:airdop) { Peatio::Airdrop.new.process(src_user, { file: { tempfile: test_file } }) }
|
||||
|
||||
it 'credited all users' do
|
||||
expect { airdop }.to change { Transfer.count }.by(5)
|
||||
uids.each do |uid|
|
||||
member = Member.find_by_uid(uid)
|
||||
expect(member.get_account(:btc).balance).to eq 100
|
||||
end
|
||||
end
|
||||
|
||||
it 'doesnt create for unexisting user' do
|
||||
Member.last.delete
|
||||
expect { airdop }.to change { Transfer.count }.by(4)
|
||||
end
|
||||
|
||||
it 'doesnt create transfers if src_user has insufficient funds (enough for the part of airdrop)' do
|
||||
src_user.get_account(:btc).update(balance: 200)
|
||||
expect { airdop }.to change { Transfer.count }.by(0)
|
||||
end
|
||||
|
||||
it 'doesnt create transfers if src_user has insufficient funds (zero balance)' do
|
||||
src_user.get_account(:btc).update(balance: 0)
|
||||
expect { airdop }.to change { Transfer.count }.by(0)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user