Slide 3
Slide 3 text
describe Notifier, "#notify" do
let(:message_body) do
"Hi @#{notifiable_user1.name} @#{notifiable_user2.name}\
@#{ unnotifiable_user.name }"
end
!
let(:message) { create(:message, body: message_body) }
!
it "FB's the message's mentioned users who prefer to be FB'd" do
notifiable_user1 = create(:facebook_connected_user, fb_me_on_mention: true)
notifiable_user2 = create(:facebook_connected_user, fb_me_on_mention: true)
unnotifiable_user = create(:facebook_connected_user, fb_me_on_mention: false)
!
notifiable_user1.facebook_connection.stub(put_connections: true)
notifiable_user2.facebook_connection.stub(put_connections: true)
unnotifiable_user.facebook_connection.stub(put_connections: true)
!
Notifier.notify(message)
!
expected_message = "#{message.author.name} said #{message_body}"
!
expect(notifiable_user1.facebook_connection).to have_received(:put_connections).with("me", "feed", message: expected_message)
expect(notifiable_user2.facebook_connection).to have_received(:put_connections).with("me", "feed", message: expected_message)
expect(unnotifiable_user.facebook_connection).not_to have_received(:put_connections)
end
!
it "emails the message's mentioned users who prefer to be emailed" do
notifiable_user1 = create(:user, email_me_on_mention: true)
notifiable_user2 = create(:user, email_me_on_mention: true)
unnotifiable_user = create(:user, email_me_on_mention: false)
!
MessageMailer.stub(:deliver_message)
!
Notifier.notify(message)
!
expected(MessageMailer).to have_received(:deliver_message).with(message, [notifiable_user1, notifiable_user2])
end
!
it "SMS's the message's mentioned users who prefer to be SMS'd" do
notifiable_user1 = create(:sms_user, sms_me_on_mention: true)
notifiable_user2 = create(:sms_user, sms_me_on_mention: true)
unnotifiable_user = create(:sms_user, sms_me_on_mention: false)
!
SMSGateway.stub(:deliver)
!
Notifier.notify(message)
!
expected_message = "#{message.author.name} said #{message_body}"
!
expect(SMSGateway).to have_received(:deliver).with(expected_message, notifiable_user1.sms_number)
expect(SMSGateway).to have_received(:deliver).with(expected_message, notifiable_user2.sms_number)
end
end