spec/base_spec.rb in upholsterer-1.2.0 vs spec/base_spec.rb in upholsterer-1.3.0
- old
+ new
@@ -261,6 +261,28 @@
specify { expect(subject.user.email).to eq 'peter@email.com' }
its(:to_json) { should be_json_with(id: 1, user: { name: 'Peter', email: 'peter@email.com'}, comment: nil) }
end
end
+
+ describe 'custom subject' do
+ let(:presenter) do
+ Class.new(Presenter) do
+ subjects :message, :user
+
+ expose :id
+ expose :name, with: :user
+
+ private
+
+ def user
+ message.recipient.user
+ end
+ end
+ end
+
+ subject { presenter.new(double(id: 1, recipient: double(user: double(name: 'Tom')))) }
+
+ its(:id) { should eq 1 }
+ its(:user_name) { should eq 'Tom' }
+ end
end