Initial commit
This commit is contained in:
14
spec/api/v2/entities/account_spec.rb
Normal file
14
spec/api/v2/entities/account_spec.rb
Normal file
@@ -0,0 +1,14 @@
|
||||
# encoding: UTF-8
|
||||
# frozen_string_literal: true
|
||||
|
||||
describe API::V2::Entities::Account do
|
||||
let(:account) { create_account(:btc, balance: 100) }
|
||||
|
||||
subject { OpenStruct.new API::V2::Entities::Account.represent(account).serializable_hash }
|
||||
|
||||
it do
|
||||
expect(subject.currency).to eq 'btc'
|
||||
expect(subject.balance).to eq '100.0'
|
||||
expect(subject.locked).to eq '0.0'
|
||||
end
|
||||
end
|
||||
13
spec/api/v2/entities/member_spec.rb
Normal file
13
spec/api/v2/entities/member_spec.rb
Normal file
@@ -0,0 +1,13 @@
|
||||
# encoding: UTF-8
|
||||
# frozen_string_literal: true
|
||||
|
||||
describe API::V2::Entities::Member do
|
||||
let(:member) { create(:member, :level_3) }
|
||||
|
||||
subject { OpenStruct.new API::V2::Entities::Member.represent(member).serializable_hash }
|
||||
|
||||
it do
|
||||
expect(subject.uid).to eq member.uid
|
||||
expect(subject.email).to eq member.email
|
||||
end
|
||||
end
|
||||
52
spec/api/v2/entities/order_spec.rb
Normal file
52
spec/api/v2/entities/order_spec.rb
Normal file
@@ -0,0 +1,52 @@
|
||||
# encoding: UTF-8
|
||||
# frozen_string_literal: true
|
||||
|
||||
describe API::V2::Entities::Order do
|
||||
let(:order) do
|
||||
create(
|
||||
:order_ask,
|
||||
:btcusd,
|
||||
price: '12.32'.to_d,
|
||||
volume: '3.1418',
|
||||
origin_volume: '12.13'
|
||||
)
|
||||
end
|
||||
|
||||
context 'default exposure' do
|
||||
subject { OpenStruct.new API::V2::Entities::Order.represent(order, {}).serializable_hash }
|
||||
|
||||
it do
|
||||
expect(subject.id).to eq order.id
|
||||
|
||||
expect(subject.price).to eq order.price
|
||||
expect(subject.avg_price).to eq ::Trade::ZERO
|
||||
|
||||
expect(subject.origin_volume).to eq order.origin_volume
|
||||
expect(subject.remaining_volume).to eq order.volume
|
||||
expect(subject.executed_volume).to eq(order.origin_volume - order.volume)
|
||||
|
||||
expect(subject.state).to eq order.state
|
||||
expect(subject.market).to eq order.market_id
|
||||
|
||||
expect(subject.side).to eq 'sell'
|
||||
|
||||
expect(subject.maker_fee).to eq order.maker_fee
|
||||
expect(subject.taker_fee).to eq order.taker_fee
|
||||
|
||||
expect(subject.trades).to be_nil
|
||||
expect(subject.trades_count).to be_zero
|
||||
|
||||
expect(subject.created_at).to eq order.created_at.iso8601
|
||||
end
|
||||
end
|
||||
|
||||
context 'full exposure' do
|
||||
it 'should expose related trades' do
|
||||
create(:trade, :btcusd, maker_order: order, amount: '8.0', price: '12')
|
||||
create(:trade, :btcusd, maker_order: order, amount: '0.99', price: '12.56')
|
||||
|
||||
json = API::V2::Entities::Order.represent(order, type: :full).serializable_hash
|
||||
expect(json[:trades].size).to eq 2
|
||||
end
|
||||
end
|
||||
end
|
||||
38
spec/api/v2/entities/trade_spec.rb
Normal file
38
spec/api/v2/entities/trade_spec.rb
Normal file
@@ -0,0 +1,38 @@
|
||||
# encoding: UTF-8
|
||||
# frozen_string_literal: true
|
||||
|
||||
describe API::V2::Entities::Trade do
|
||||
let(:trade) do
|
||||
create :trade, :btcusd, maker_order: create(:order_ask, :btcusd), taker_order: create(:order_bid, :btcusd)
|
||||
end
|
||||
|
||||
subject { OpenStruct.new API::V2::Entities::Trade.represent(trade, side: 'sell').serializable_hash }
|
||||
|
||||
it do
|
||||
expect(subject.id).to eq trade.id
|
||||
expect(subject.order_id).to be_nil
|
||||
expect(subject.price).to eq trade.price
|
||||
expect(subject.amount).to eq trade.amount
|
||||
expect(subject.total).to eq trade.total
|
||||
expect(subject.market).to eq trade.market_id
|
||||
expect(subject.side).to eq 'sell'
|
||||
expect(subject.created_at).to eq trade.created_at.iso8601
|
||||
end
|
||||
|
||||
context 'sell order maker' do
|
||||
it { expect(subject.taker_type).to eq 'buy' }
|
||||
end
|
||||
|
||||
context 'buy order maker' do
|
||||
let(:trade) do
|
||||
create :trade, :btcusd, maker_order: create(:order_bid, :btcusd), taker_order: create(:order_ask, :btcusd)
|
||||
end
|
||||
|
||||
it { expect(subject.taker_type).to eq 'sell' }
|
||||
end
|
||||
|
||||
context 'empty side' do
|
||||
subject { OpenStruct.new API::V2::Entities::Trade.represent(trade).serializable_hash }
|
||||
it { expect(subject.respond_to?(:side)).to be_falsey }
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user