Add missing feature and model specs on proposal and debates.
This commit is contained in:
@@ -681,105 +681,4 @@ describe User do
|
||||
|
||||
end
|
||||
|
||||
describe "#recommended_debates" do
|
||||
|
||||
let(:user) { create(:user) }
|
||||
|
||||
it "Should return up to 3 debates" do
|
||||
create_list(:debate, 4)
|
||||
|
||||
expect(user.recommended_debates.size).to eq 3
|
||||
end
|
||||
|
||||
it "Should return debates ordered by cached_votes_total" do
|
||||
debate1 = create(:debate, cached_votes_total: 1 )
|
||||
debate2 = create(:debate, cached_votes_total: 5 )
|
||||
debate3 = create(:debate, cached_votes_total: 10 )
|
||||
|
||||
result = user.recommended_debates
|
||||
|
||||
expect(result.first).to eq debate3
|
||||
expect(result.second).to eq debate2
|
||||
expect(result.third).to eq debate1
|
||||
end
|
||||
|
||||
it "Should return debates related with user interests" do
|
||||
debate1 = create(:debate, tag_list: "Sport")
|
||||
debate2 = create(:debate, tag_list: "Politics")
|
||||
proposal1 = create(:proposal, tag_list: "Sport")
|
||||
create(:follow, followable: proposal1, user: user)
|
||||
|
||||
result = user.recommended_debates
|
||||
|
||||
expect(result.size).to eq 1
|
||||
expect(result).to eq [debate1]
|
||||
end
|
||||
|
||||
it "Should not return debates when user is the author" do
|
||||
debate1 = create(:debate, author: user)
|
||||
debate2 = create(:debate)
|
||||
|
||||
result = user.recommended_debates
|
||||
|
||||
expect(result.size).to eq 1
|
||||
expect(result).to eq [debate2]
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe "#recommended_proposals" do
|
||||
|
||||
let(:user) { create(:user) }
|
||||
|
||||
it "Should return up to 3 proposals" do
|
||||
create_list(:proposal, 4)
|
||||
|
||||
expect(user.recommended_proposals.size).to eq 3
|
||||
end
|
||||
|
||||
it "Should return proposals ordered by cached_votes_up" do
|
||||
proposal1 = create(:proposal, cached_votes_up: 1 )
|
||||
proposal2 = create(:proposal, cached_votes_up: 5 )
|
||||
proposal3 = create(:proposal, cached_votes_up: 10 )
|
||||
|
||||
result = user.recommended_proposals
|
||||
|
||||
expect(result.first).to eq proposal3
|
||||
expect(result.second).to eq proposal2
|
||||
expect(result.third).to eq proposal1
|
||||
end
|
||||
|
||||
it "Should return proposals related with user interests" do
|
||||
proposal1 = create(:proposal, tag_list: "Sport")
|
||||
proposal2 = create(:proposal, tag_list: "Sport")
|
||||
proposal3 = create(:proposal, tag_list: "Politics")
|
||||
create(:follow, followable: proposal1, user: user)
|
||||
|
||||
result = user.recommended_proposals
|
||||
|
||||
expect(result.size).to eq 1
|
||||
expect(result).to eq [proposal2]
|
||||
end
|
||||
|
||||
it "Should not return proposals when user is follower" do
|
||||
proposal1 = create(:proposal, tag_list: "Sport")
|
||||
create(:follow, followable: proposal1, user: user)
|
||||
|
||||
result = user.recommended_proposals
|
||||
|
||||
expect(result.size).to eq 0
|
||||
end
|
||||
|
||||
it "Should not return proposals when user is the author" do
|
||||
proposal1 = create(:proposal, author: user)
|
||||
proposal2 = create(:proposal)
|
||||
|
||||
result = user.recommended_proposals
|
||||
|
||||
expect(result.size).to eq 1
|
||||
expect(result).to eq [proposal2]
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user