parent
d4e459692e
commit
ba35408eee
@ -0,0 +1,27 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe BasePresenter do
|
||||
class DummyPresenter < BasePresenter
|
||||
|
||||
def self.object_klass
|
||||
Carto::Organization
|
||||
end
|
||||
|
||||
# rubocop:disable Style/AccessModifierDeclarations
|
||||
private(*delegate(*delegated_methods, to: :object))
|
||||
# rubocop:enable Style/AccessModifierDeclarations
|
||||
|
||||
def data
|
||||
{ id: id }
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
let(:organization) { create(:carto_organization) }
|
||||
let(:presenter) { DummyPresenter.new(organization) }
|
||||
|
||||
it 'delegates basic methods to inner object while keeping them private' do
|
||||
expect(presenter.data[:id]).to eq(organization.id)
|
||||
expect { presenter.id }.to raise_error(NoMethodError)
|
||||
end
|
||||
end
|
@ -0,0 +1,25 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe OrganizationPresenter do
|
||||
let(:user) { create(:carto_user, period_end_date: Time.parse('2018-01-01')) }
|
||||
let(:organization) { create(:carto_organization, owner: user) }
|
||||
let(:presenter) { described_class.new(organization) }
|
||||
let(:date_range) { { Date.new(2017, 3, 20) => 1 } }
|
||||
|
||||
describe '#data' do
|
||||
before do
|
||||
CartoDB::ServiceUsageMetrics.any_instance.stubs(:get_date_range).returns(date_range)
|
||||
end
|
||||
|
||||
it 'returns the default representation' do
|
||||
expect(presenter.data[:id]).to eq(organization.id)
|
||||
expect(presenter.data[:owner][:username]).to eq(organization.owner.username)
|
||||
end
|
||||
|
||||
it 'returns extra attributes for the extended representation' do
|
||||
presenter = described_class.new(organization, extended: true)
|
||||
|
||||
expect(presenter.data[:table_count]).to eq(0)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in new issue