Skip to content

Commit dcc40d6

Browse files
committed
Inline Class: Step One
* Inline and move methods from inlined class
1 parent 6b5273d commit dcc40d6

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

example_app/app/models/invitation.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ def to_param
1515
end
1616

1717
def deliver
18-
EmailInviter.new(self).deliver
18+
body = InvitationMessage.new(self).body
19+
Mailer.invitation_notification(self, body).deliver
1920
end
2021

2122
private

example_app/spec/models/invitation_spec.rb

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,20 @@
1313
end
1414

1515
describe Invitation, '#deliver' do
16+
include Rails.application.routes.url_helpers
17+
self.default_url_options = ActionMailer::Base.default_url_options
18+
1619
it 'sends email notifications to new users' do
17-
inviter = stub('inviter', deliver: true)
18-
EmailInviter.stubs(new: inviter)
19-
invitation = build_stubbed(:invitation)
20+
survey = create(:survey)
21+
invitation = create(:invitation, message: 'hello', survey: survey)
2022

2123
invitation.deliver
2224

23-
EmailInviter.should have_received(:new).with(invitation)
24-
inviter.should have_received(:deliver)
25+
message = ActionMailer::Base.deliveries.last
26+
message.should deliver_to(invitation.recipient_email)
27+
message.should have_body_text(invitation.sender.email)
28+
message.should have_body_text(invitation.message)
29+
message.should have_body_text(survey_url(survey))
2530
end
2631
end
2732

0 commit comments

Comments
 (0)