Initial commit
This commit is contained in:
155
spec/workers/deposit_spec.rb
Normal file
155
spec/workers/deposit_spec.rb
Normal file
@@ -0,0 +1,155 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
describe Workers::Daemons::Deposit do
|
||||
let(:btc_deposit) { create(:deposit, :deposit_btc) }
|
||||
let(:eth_deposit) { create(:deposit, :deposit_eth) }
|
||||
let(:trst_deposit) { create(:deposit, :deposit_trst) }
|
||||
|
||||
let(:collected_spread) do
|
||||
spread.each_with_index.map do |s, i|
|
||||
s.merge(hash: "hash-#{i}")
|
||||
end
|
||||
end
|
||||
|
||||
subject { Workers::Daemons::Deposit.new }
|
||||
|
||||
context 'collect btc deposit' do
|
||||
before do
|
||||
btc_deposit.accept!
|
||||
btc_deposit.process!
|
||||
btc_deposit.update!(updated_at: Time.now - 20.minutes)
|
||||
transactions = collected_spread.map { |s| Peatio::Transaction.new(s) }
|
||||
WalletService.any_instance
|
||||
.expects(:collect_deposit!)
|
||||
.with(instance_of(Deposits::Coin), anything)
|
||||
.returns(transactions)
|
||||
end
|
||||
|
||||
let(:spread) do
|
||||
[{ to_address: 'to-address', amount: 0.1, status: 'pending' }]
|
||||
end
|
||||
|
||||
it 'process one btc deposit' do
|
||||
subject.process
|
||||
expect(btc_deposit.reload.collected?).to be_truthy
|
||||
end
|
||||
end
|
||||
|
||||
context 'collect eth deposit' do
|
||||
before do
|
||||
eth_deposit.accept!
|
||||
eth_deposit.process!
|
||||
eth_deposit.update!(updated_at: Time.now - 20.minutes)
|
||||
end
|
||||
|
||||
before do
|
||||
transactions = collected_spread.map { |s| Peatio::Transaction.new(s) }
|
||||
WalletService.any_instance
|
||||
.expects(:collect_deposit!)
|
||||
.with(instance_of(Deposits::Coin), anything)
|
||||
.returns(transactions)
|
||||
end
|
||||
|
||||
let(:spread) do
|
||||
[{ to_address: 'to-address', amount: 0.1, status: 'pending' }]
|
||||
end
|
||||
|
||||
it 'process one eth deposit' do
|
||||
subject.process
|
||||
expect(eth_deposit.reload.collected?).to be_truthy
|
||||
end
|
||||
end
|
||||
|
||||
context 'collect fee for trst deposit' do
|
||||
before do
|
||||
trst_deposit.accept!
|
||||
trst_deposit.process!
|
||||
trst_deposit.update!(updated_at: Time.now - 20.minutes)
|
||||
end
|
||||
|
||||
before do
|
||||
transactions = collected_spread.map { |s| Peatio::Transaction.new(s) }
|
||||
WalletService.any_instance
|
||||
.expects(:deposit_collection_fees!)
|
||||
.with(instance_of(Deposits::Coin), anything)
|
||||
.returns(transactions)
|
||||
end
|
||||
|
||||
let(:spread) do
|
||||
[{ to_address: 'to-address', amount: 0.1, status: 'pending' }]
|
||||
end
|
||||
|
||||
it 'process one trst deposit' do
|
||||
subject.process
|
||||
expect(trst_deposit.reload.fee_processing?).to be_truthy
|
||||
end
|
||||
end
|
||||
|
||||
context 'collect trst deposit' do
|
||||
before do
|
||||
trst_deposit.accept!
|
||||
trst_deposit.process!
|
||||
trst_deposit.fee_process!
|
||||
trst_deposit.update!(updated_at: Time.now - 20.minutes)
|
||||
end
|
||||
|
||||
before do
|
||||
transactions = collected_spread.map { |s| Peatio::Transaction.new(s) }
|
||||
WalletService.any_instance
|
||||
.expects(:collect_deposit!)
|
||||
.with(instance_of(Deposits::Coin), anything)
|
||||
.returns(transactions)
|
||||
end
|
||||
|
||||
let(:spread) do
|
||||
[{ to_address: 'to-address', amount: 0.1, status: 'pending' }]
|
||||
end
|
||||
|
||||
it 'process one trst deposit' do
|
||||
subject.process
|
||||
expect(trst_deposit.reload.collected?).to be_truthy
|
||||
end
|
||||
end
|
||||
|
||||
context 'error raised on collection step' do
|
||||
before do
|
||||
btc_deposit.accept!
|
||||
btc_deposit.process!
|
||||
btc_deposit.update!(updated_at: Time.now - 20.minutes)
|
||||
WalletService.any_instance
|
||||
.expects(:collect_deposit!)
|
||||
.with(instance_of(Deposits::Coin), anything)
|
||||
.raises(StandardError.new)
|
||||
end
|
||||
|
||||
let(:spread) do
|
||||
[{ to_address: 'to-address', amount: 0.1, status: 'pending' }]
|
||||
end
|
||||
|
||||
it 'process one btc deposit' do
|
||||
subject.process
|
||||
expect(btc_deposit.reload.processing?).to be_truthy
|
||||
end
|
||||
end
|
||||
|
||||
context 'error raised on collection fee step' do
|
||||
before do
|
||||
eth_deposit.accept!
|
||||
eth_deposit.process!
|
||||
eth_deposit.update!(updated_at: Time.now - 20.minutes)
|
||||
WalletService.any_instance
|
||||
.expects(:deposit_collection_fees!)
|
||||
.with(instance_of(Deposits::Coin), anything)
|
||||
.raises(StandardError.new)
|
||||
end
|
||||
|
||||
let(:spread) do
|
||||
[{ to_address: 'to-address', amount: 0.1, status: 'pending' }]
|
||||
end
|
||||
|
||||
it 'process one eth deposit' do
|
||||
subject.process
|
||||
expect(eth_deposit.reload.processing?).to be_truthy
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user