70 lines
2.1 KiB
Ruby
70 lines
2.1 KiB
Ruby
# encoding: UTF-8
|
|
# frozen_string_literal: true
|
|
|
|
describe API::V2::Management::Entities::Transfer do
|
|
let(:record) { create(:transfer) }
|
|
subject { OpenStruct.new API::V2::Management::Entities::Transfer.represent(record.reload).serializable_hash }
|
|
|
|
it do
|
|
expect(subject.key).to eq record.key
|
|
expect(subject.category).to eq record.category
|
|
expect(subject.description).to eq record.description
|
|
end
|
|
|
|
context 'with operations' do
|
|
let(:record) { create(:transfer_with_operations) }
|
|
it do
|
|
::Operations::Account::TYPES.map(&:pluralize).each do |op_t|
|
|
expect(subject.respond_to?(op_t)).to be_truthy
|
|
end
|
|
end
|
|
|
|
it do
|
|
record_assets = API::V2::Management::Entities::Operation
|
|
.represent(record.reload.assets)
|
|
expect(subject.assets.to_json).to eq record_assets.to_json
|
|
end
|
|
|
|
it do
|
|
record_expenses = API::V2::Management::Entities::Operation
|
|
.represent(record.reload.expenses)
|
|
expect(subject.expenses.to_json).to eq record_expenses.to_json
|
|
end
|
|
|
|
it do
|
|
record_liabilities = API::V2::Management::Entities::Operation
|
|
.represent(record.reload.liabilities)
|
|
expect(subject.liabilities.to_json).to eq record_liabilities.to_json
|
|
end
|
|
|
|
it do
|
|
record_revenues = API::V2::Management::Entities::Operation
|
|
.represent(record.reload.revenues)
|
|
expect(subject.revenues.to_json).to eq record_revenues.to_json
|
|
end
|
|
end
|
|
|
|
context 'with single operation type' do
|
|
let(:record) { create(:transfer, :with_liabilities) }
|
|
|
|
it do
|
|
expect(subject.respond_to?(:liabilities)).to be_truthy
|
|
end
|
|
|
|
it do
|
|
# TYPES - 'liabilities' = PLATFORM_TYPES
|
|
::Operations::Account::PLATFORM_TYPES.map(&:pluralize).each do |op_t|
|
|
expect(subject.respond_to?(op_t.to_sym)).to be_falsey
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'without operations' do
|
|
it do
|
|
::Operations::Account::TYPES.map(&:pluralize).each do |op_t|
|
|
expect(subject.respond_to?(op_t)).to be_falsey
|
|
end
|
|
end
|
|
end
|
|
end
|