jam-cloud/ruby/spec/jam_ruby/models/friendship_spec.rb

57 lines
1.4 KiB
Ruby

require 'spec_helper'
describe Friendship do
let(:user1) { FactoryBot.create(:user) }
let(:user2) { FactoryBot.create(:user) }
before(:each) do
Friendship.save_using_models(user1, user2)
end
it "can create two-way friendship" do
user1.friends?(user2).should be true
user2.friends?(user1).should be true
end
it "should track user progression" do
user1.first_friended_at.should_not be_nil
user2.first_friended_at.should_not be_nil
end
it "should accept a single request" do
user1 = FactoryBot.create(:user)
user2 = FactoryBot.create(:user)
req1 = FriendRequest.new
req1.user = user1
req1.friend = user2
req1.save!
FriendRequest.save(req1.id, user1.id, user2.id, 'accept', nil)
requests = FriendRequest.where('user_id = ? AND friend_id = ? AND status = ?', user1.id, user2.id, 'accept')
requests.count.should == 1
end
it "should update duplicate requests" do
user1 = FactoryBot.create(:user)
user2 = FactoryBot.create(:user)
req1 = FriendRequest.new
req1.user = user1
req1.friend = user2
req1.save!
req2 = FriendRequest.new
req2.user = user1
req2.friend = user2
req2.save!
FriendRequest.save(req1.id, user1.id, user2.id, 'accept', nil)
requests = FriendRequest.where('user_id = ? AND friend_id = ? AND status = ?', user1.id, user2.id, 'accept')
requests.count.should == 2
end
end