Simplify testing records exclusion
When we already have tests checking which records are included, in the tests testing records are not included we can just generate records which will not be included and test against an empty array. We were already using this approach in some tests. This way we also avoid useless assignments.
This commit is contained in:
@@ -748,7 +748,7 @@ describe Debate do
|
||||
expect(Debate.recommendations(user)).to be_empty
|
||||
end
|
||||
|
||||
it "returns debates ordered by cached_votes_total" do
|
||||
it "returns debates related to the user's interests ordered by cached_votes_total" do
|
||||
debate1 = create(:debate, cached_votes_total: 1, tag_list: "Sport")
|
||||
debate2 = create(:debate, cached_votes_total: 5, tag_list: "Sport")
|
||||
debate3 = create(:debate, cached_votes_total: 10, tag_list: "Sport")
|
||||
@@ -760,26 +760,24 @@ describe Debate do
|
||||
expect(results).to eq [debate3, debate2, debate1]
|
||||
end
|
||||
|
||||
it "returns debates related with user interests" do
|
||||
debate1 = create(:debate, tag_list: "Sport")
|
||||
debate2 = create(:debate, tag_list: "Politics")
|
||||
it "does not return debates unrelated to user interests" do
|
||||
proposal1 = create(:proposal, tag_list: "Sport")
|
||||
create(:follow, followable: proposal1, user: user)
|
||||
debate2 = create(:debate, tag_list: "Politics")
|
||||
|
||||
result = Debate.recommendations(user)
|
||||
results = Debate.recommendations(user)
|
||||
|
||||
expect(result).to eq [debate1]
|
||||
expect(results).to be_empty
|
||||
end
|
||||
|
||||
it "does not return debates when user is the author" do
|
||||
debate1 = create(:debate, author: user, tag_list: "Sport")
|
||||
debate2 = create(:debate, tag_list: "Sport")
|
||||
proposal = create(:proposal, tag_list: "Sport")
|
||||
create(:follow, followable: proposal, user: user)
|
||||
debate1 = create(:debate, author: user, tag_list: "Sport")
|
||||
|
||||
result = Debate.recommendations(user)
|
||||
results = Debate.recommendations(user)
|
||||
|
||||
expect(result).to eq [debate2]
|
||||
expect(results).to be_empty
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -962,7 +962,7 @@ describe Proposal do
|
||||
expect(Proposal.recommendations(user)).to be_empty
|
||||
end
|
||||
|
||||
it "returns proposals ordered by cached_votes_up" do
|
||||
it "returns proposals related to the user's interests ordered by cached_votes_up" do
|
||||
proposal1 = create(:proposal, cached_votes_up: 1, tag_list: "Sport")
|
||||
proposal2 = create(:proposal, cached_votes_up: 5, tag_list: "Sport")
|
||||
proposal3 = create(:proposal, cached_votes_up: 10, tag_list: "Sport")
|
||||
@@ -974,58 +974,54 @@ describe Proposal do
|
||||
expect(results).to eq [proposal3, proposal2, proposal1]
|
||||
end
|
||||
|
||||
it "returns proposals related with user interests" do
|
||||
it "does not return proposals unrelated to user interests" do
|
||||
proposal1 = create(:proposal, tag_list: "Sport")
|
||||
proposal2 = create(:proposal, tag_list: "Sport")
|
||||
proposal3 = create(:proposal, tag_list: "Politics")
|
||||
proposal2 = create(:proposal, tag_list: "Politics")
|
||||
create(:follow, followable: proposal1, user: user)
|
||||
|
||||
result = Proposal.recommendations(user)
|
||||
results = Proposal.recommendations(user)
|
||||
|
||||
expect(result).to eq [proposal2]
|
||||
expect(results).to be_empty
|
||||
end
|
||||
|
||||
it "does not return proposals when user is follower" do
|
||||
proposal1 = create(:proposal, tag_list: "Sport")
|
||||
create(:follow, followable: proposal1, user: user)
|
||||
|
||||
result = Proposal.recommendations(user)
|
||||
results = Proposal.recommendations(user)
|
||||
|
||||
expect(result).to be_empty
|
||||
expect(results).to be_empty
|
||||
end
|
||||
|
||||
it "does not return proposals when user is the author" do
|
||||
proposal1 = create(:proposal, author: user, tag_list: "Sport")
|
||||
proposal2 = create(:proposal, tag_list: "Sport")
|
||||
proposal3 = create(:proposal, tag_list: "Sport")
|
||||
create(:follow, followable: proposal3, user: user)
|
||||
proposal1 = create(:proposal, tag_list: "Sport")
|
||||
proposal2 = create(:proposal, author: user, tag_list: "Sport")
|
||||
create(:follow, followable: proposal1, user: user)
|
||||
|
||||
result = Proposal.recommendations(user)
|
||||
results = Proposal.recommendations(user)
|
||||
|
||||
expect(result).to eq [proposal2]
|
||||
expect(results).to be_empty
|
||||
end
|
||||
|
||||
it "does not return archived proposals" do
|
||||
proposal1 = create(:proposal, tag_list: "Sport")
|
||||
proposal2 = create(:proposal, tag_list: "Sport")
|
||||
archived_proposal = create(:proposal, :archived, tag_list: "Sport")
|
||||
create(:follow, followable: proposal1, user: user)
|
||||
|
||||
result = Proposal.recommendations(user)
|
||||
results = Proposal.recommendations(user)
|
||||
|
||||
expect(result).to eq([proposal2])
|
||||
expect(results).to be_empty
|
||||
end
|
||||
|
||||
it "does not return already supported proposals" do
|
||||
proposal1 = create(:proposal, tag_list: "Health")
|
||||
proposal2 = create(:proposal, tag_list: "Health")
|
||||
proposal3 = create(:proposal, tag_list: "Health")
|
||||
create(:vote, votable: proposal1, voter: user)
|
||||
create(:follow, followable: proposal2, user: user)
|
||||
|
||||
result = Proposal.recommendations(user)
|
||||
results = Proposal.recommendations(user)
|
||||
|
||||
expect(result).to eq([proposal3])
|
||||
expect(results).to be_empty
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user