70 lines
2.3 KiB
Ruby
70 lines
2.3 KiB
Ruby
# Copyright (c) 2010-2011, Diaspora Inc. This file is
|
|
# licensed under the Affero General Public License version 3 or later. See
|
|
# the COPYRIGHT file.
|
|
|
|
require 'spec_helper'
|
|
|
|
describe Notifications::PrivateMessage, :type => :model do
|
|
before do
|
|
@user1 = alice
|
|
@user2 = bob
|
|
|
|
@create_hash = {
|
|
:author => @user1.person,
|
|
:participant_ids => [@user1.contacts.first.person.id, @user1.person.id],
|
|
:subject => 'cool stuff',
|
|
:messages_attributes => [ {:author => @user1.person, :text => 'stuff'} ]
|
|
}
|
|
|
|
@cnv = Conversation.create(@create_hash)
|
|
@msg = @cnv.messages.first
|
|
end
|
|
|
|
describe '#make_notifiaction' do
|
|
it 'does not save the notification' do
|
|
expect{
|
|
Notification.notify(@user2, @msg, @user1.person)
|
|
}.not_to change(Notification, :count)
|
|
end
|
|
|
|
it 'does email the user' do
|
|
opts = {
|
|
:actors => [@user1.person],
|
|
:recipient_id => @user2.id}
|
|
|
|
n = Notifications::PrivateMessage.new(opts)
|
|
allow(Notifications::PrivateMessage).to receive(:make_notification).and_return(n)
|
|
Notification.notify(@user2, @msg, @user1.person)
|
|
allow(n).to receive(:recipient).and_return @user2
|
|
|
|
expect(@user2).to receive(:mail)
|
|
n.email_the_user(@msg, @user1.person)
|
|
end
|
|
|
|
it 'increases user unread count - author user 1' do
|
|
message = @cnv.messages.build(
|
|
:text => "foo bar",
|
|
:author => @user1.person
|
|
)
|
|
message.save
|
|
n = Notifications::PrivateMessage.make_notification(@user2, message, @user1.person, Notifications::PrivateMessage)
|
|
|
|
expect(ConversationVisibility.where(:conversation_id => message.reload.conversation.id,
|
|
:person_id => @user2.person.id).first.unread).to eq(1)
|
|
end
|
|
|
|
it 'increases user unread count - author user 2' do
|
|
message = @cnv.messages.build(
|
|
:text => "foo bar",
|
|
:author => @user2.person
|
|
)
|
|
message.save
|
|
n = Notifications::PrivateMessage.make_notification(@user1, message, @user2.person, Notifications::PrivateMessage)
|
|
|
|
expect(ConversationVisibility.where(:conversation_id => message.reload.conversation.id,
|
|
:person_id => @user1.person.id).first.unread).to eq(1)
|
|
end
|
|
|
|
end
|
|
end
|
|
|