57 lines
1.4 KiB
Ruby
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
|