Simplify testing arrays exact contents
Instead of testing the contents of each element, we can test the whole array at once.
This commit is contained in:
@@ -994,10 +994,10 @@ describe "Budget Investments" do
|
|||||||
visit new_budget_investment_path(budget)
|
visit new_budget_investment_path(budget)
|
||||||
|
|
||||||
select_options = find("#budget_investment_heading_id").all("option").collect(&:text)
|
select_options = find("#budget_investment_heading_id").all("option").collect(&:text)
|
||||||
expect(select_options.first).to eq("")
|
expect(select_options).to eq ["",
|
||||||
expect(select_options.second).to eq("Toda la ciudad")
|
"Toda la ciudad",
|
||||||
expect(select_options.third).to eq("Health: More health professionals")
|
"Health: More health professionals",
|
||||||
expect(select_options.fourth).to eq("Health: More hospitals")
|
"Health: More hospitals"]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -24,10 +24,7 @@ describe GeozonesHelper do
|
|||||||
|
|
||||||
select_options = geozone_select_options
|
select_options = geozone_select_options
|
||||||
|
|
||||||
expect(select_options.size).to eq 3
|
expect(select_options).to eq [[g1.name, g1.id], [g2.name, g2.id], [g3.name, g3.id]]
|
||||||
expect(select_options.first).to eq [g1.name, g1.id]
|
|
||||||
expect(select_options[1]).to eq [g2.name, g2.id]
|
|
||||||
expect(select_options.last).to eq [g3.name, g3.id]
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -218,8 +218,7 @@ describe UserSegments do
|
|||||||
create(:user, email: "last@email.com")
|
create(:user, email: "last@email.com")
|
||||||
|
|
||||||
emails = UserSegments.user_segment_emails(:all_users)
|
emails = UserSegments.user_segment_emails(:all_users)
|
||||||
expect(emails.first).to eq "first@email.com"
|
expect(emails).to eq ["first@email.com", "last@email.com"]
|
||||||
expect(emails.last).to eq "last@email.com"
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -883,9 +883,7 @@ describe Budget::Investment do
|
|||||||
most_voted = create(:budget_investment, cached_votes_up: 10)
|
most_voted = create(:budget_investment, cached_votes_up: 10)
|
||||||
some_votes = create(:budget_investment, cached_votes_up: 5)
|
some_votes = create(:budget_investment, cached_votes_up: 5)
|
||||||
|
|
||||||
expect(Budget::Investment.sort_by_confidence_score.first).to eq most_voted
|
expect(Budget::Investment.sort_by_confidence_score).to eq [most_voted, some_votes, least_voted]
|
||||||
expect(Budget::Investment.sort_by_confidence_score.second).to eq some_votes
|
|
||||||
expect(Budget::Investment.sort_by_confidence_score.third).to eq least_voted
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "orders by confidence_score and then by id" do
|
it "orders by confidence_score and then by id" do
|
||||||
|
|||||||
@@ -578,8 +578,7 @@ describe Debate do
|
|||||||
|
|
||||||
results = Debate.search("stop corruption")
|
results = Debate.search("stop corruption")
|
||||||
|
|
||||||
expect(results.first).to eq(debate_title)
|
expect(results).to eq [debate_title, debate_description]
|
||||||
expect(results.second).to eq(debate_description)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "orders by weight and then votes" do
|
it "orders by weight and then votes" do
|
||||||
@@ -590,10 +589,7 @@ describe Debate do
|
|||||||
|
|
||||||
results = Debate.search("stop corruption")
|
results = Debate.search("stop corruption")
|
||||||
|
|
||||||
expect(results.first).to eq(title_most_voted)
|
expect(results).to eq [title_most_voted, title_some_votes, title_least_voted, description_most_voted]
|
||||||
expect(results.second).to eq(title_some_votes)
|
|
||||||
expect(results.third).to eq(title_least_voted)
|
|
||||||
expect(results.fourth).to eq(description_most_voted)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "gives much more weight to word matches than votes" do
|
it "gives much more weight to word matches than votes" do
|
||||||
@@ -602,8 +598,7 @@ describe Debate do
|
|||||||
|
|
||||||
results = Debate.search("stop corruption")
|
results = Debate.search("stop corruption")
|
||||||
|
|
||||||
expect(results.first).to eq(exact_title_few_votes)
|
expect(results).to eq [exact_title_few_votes, similar_title_many_votes]
|
||||||
expect(results.second).to eq(similar_title_many_votes)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -621,15 +616,11 @@ describe Debate do
|
|||||||
|
|
||||||
results = Debate.search("stop corruption")
|
results = Debate.search("stop corruption")
|
||||||
|
|
||||||
expect(results.first).to eq(average_score)
|
expect(results).to eq [average_score, highest_score, lowest_score]
|
||||||
expect(results.second).to eq(highest_score)
|
|
||||||
expect(results.third).to eq(lowest_score)
|
|
||||||
|
|
||||||
results = results.sort_by_hot_score
|
results = results.sort_by_hot_score
|
||||||
|
|
||||||
expect(results.first).to eq(highest_score)
|
expect(results).to eq [highest_score, average_score, lowest_score]
|
||||||
expect(results.second).to eq(average_score)
|
|
||||||
expect(results.third).to eq(lowest_score)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "is able to reorder by confidence_score after searching" do
|
it "is able to reorder by confidence_score after searching" do
|
||||||
@@ -643,15 +634,11 @@ describe Debate do
|
|||||||
|
|
||||||
results = Debate.search("stop corruption")
|
results = Debate.search("stop corruption")
|
||||||
|
|
||||||
expect(results.first).to eq(average_score)
|
expect(results).to eq [average_score, highest_score, lowest_score]
|
||||||
expect(results.second).to eq(highest_score)
|
|
||||||
expect(results.third).to eq(lowest_score)
|
|
||||||
|
|
||||||
results = results.sort_by_confidence_score
|
results = results.sort_by_confidence_score
|
||||||
|
|
||||||
expect(results.first).to eq(highest_score)
|
expect(results).to eq [highest_score, average_score, lowest_score]
|
||||||
expect(results.second).to eq(average_score)
|
|
||||||
expect(results.third).to eq(lowest_score)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "is able to reorder by created_at after searching" do
|
it "is able to reorder by created_at after searching" do
|
||||||
@@ -661,15 +648,11 @@ describe Debate do
|
|||||||
|
|
||||||
results = Debate.search("stop corruption")
|
results = Debate.search("stop corruption")
|
||||||
|
|
||||||
expect(results.first).to eq(oldest)
|
expect(results).to eq [oldest, newest, recent]
|
||||||
expect(results.second).to eq(newest)
|
|
||||||
expect(results.third).to eq(recent)
|
|
||||||
|
|
||||||
results = results.sort_by_created_at
|
results = results.sort_by_created_at
|
||||||
|
|
||||||
expect(results.first).to eq(newest)
|
expect(results).to eq [newest, recent, oldest]
|
||||||
expect(results.second).to eq(recent)
|
|
||||||
expect(results.third).to eq(oldest)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "is able to reorder by most commented after searching" do
|
it "is able to reorder by most commented after searching" do
|
||||||
@@ -679,15 +662,11 @@ describe Debate do
|
|||||||
|
|
||||||
results = Debate.search("stop corruption")
|
results = Debate.search("stop corruption")
|
||||||
|
|
||||||
expect(results.first).to eq(some_comments)
|
expect(results).to eq [some_comments, most_commented, least_commented]
|
||||||
expect(results.second).to eq(most_commented)
|
|
||||||
expect(results.third).to eq(least_commented)
|
|
||||||
|
|
||||||
results = results.sort_by_most_commented
|
results = results.sort_by_most_commented
|
||||||
|
|
||||||
expect(results.first).to eq(most_commented)
|
expect(results).to eq [most_commented, some_comments, least_commented]
|
||||||
expect(results.second).to eq(some_comments)
|
|
||||||
expect(results.third).to eq(least_commented)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -772,11 +751,9 @@ describe Debate do
|
|||||||
proposal = create(:proposal, tag_list: "Sport")
|
proposal = create(:proposal, tag_list: "Sport")
|
||||||
create(:follow, followable: proposal, user: user)
|
create(:follow, followable: proposal, user: user)
|
||||||
|
|
||||||
result = Debate.recommendations(user).sort_by_recommendations
|
results = Debate.recommendations(user).sort_by_recommendations
|
||||||
|
|
||||||
expect(result.first).to eq debate3
|
expect(results).to eq [debate3, debate2, debate1]
|
||||||
expect(result.second).to eq debate2
|
|
||||||
expect(result.third).to eq debate1
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns debates related with user interests" do
|
it "returns debates related with user interests" do
|
||||||
|
|||||||
@@ -75,9 +75,7 @@ describe Poll::Officer do
|
|||||||
|
|
||||||
assigned_polls = officer.voting_days_assigned_polls
|
assigned_polls = officer.voting_days_assigned_polls
|
||||||
|
|
||||||
expect(assigned_polls.first).to eq(poll_2)
|
expect(assigned_polls).to eq [poll_2, poll_1, poll_3]
|
||||||
expect(assigned_polls.second).to eq(poll_1)
|
|
||||||
expect(assigned_polls.last).to eq(poll_3)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -126,9 +124,7 @@ describe Poll::Officer do
|
|||||||
|
|
||||||
assigned_polls = officer.final_days_assigned_polls
|
assigned_polls = officer.final_days_assigned_polls
|
||||||
|
|
||||||
expect(assigned_polls.first).to eq(poll_2)
|
expect(assigned_polls).to eq [poll_2, poll_1, poll_3]
|
||||||
expect(assigned_polls.second).to eq(poll_1)
|
|
||||||
expect(assigned_polls.last).to eq(poll_3)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -120,10 +120,8 @@ describe Poll::PairAnswer do
|
|||||||
describe "#answers" do
|
describe "#answers" do
|
||||||
let(:pair_answer) { create(:poll_pair_answer) }
|
let(:pair_answer) { create(:poll_pair_answer) }
|
||||||
|
|
||||||
it "returns and array of answers" do
|
it "returns an array of answers" do
|
||||||
expect(pair_answer.answers).to be_a Array
|
expect(pair_answer.answers).to eq [pair_answer.answer_left, pair_answer.answer_right]
|
||||||
expect(pair_answer.answers[0]).to eq(pair_answer.answer_left)
|
|
||||||
expect(pair_answer.answers[1]).to eq(pair_answer.answer_right)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -613,9 +613,7 @@ describe Proposal do
|
|||||||
|
|
||||||
results = Proposal.search("stop corruption")
|
results = Proposal.search("stop corruption")
|
||||||
|
|
||||||
expect(results.first).to eq(proposal_title)
|
expect(results).to eq [proposal_title, proposal_summary, proposal_description]
|
||||||
expect(results.second).to eq(proposal_summary)
|
|
||||||
expect(results.third).to eq(proposal_description)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "orders by weight and then by votes" do
|
it "orders by weight and then by votes" do
|
||||||
@@ -627,10 +625,7 @@ describe Proposal do
|
|||||||
|
|
||||||
results = Proposal.search("stop corruption")
|
results = Proposal.search("stop corruption")
|
||||||
|
|
||||||
expect(results.first).to eq(title_most_voted)
|
expect(results).to eq [title_most_voted, title_some_votes, title_least_voted, summary_most_voted]
|
||||||
expect(results.second).to eq(title_some_votes)
|
|
||||||
expect(results.third).to eq(title_least_voted)
|
|
||||||
expect(results.fourth).to eq(summary_most_voted)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "gives much more weight to word matches than votes" do
|
it "gives much more weight to word matches than votes" do
|
||||||
@@ -639,8 +634,7 @@ describe Proposal do
|
|||||||
|
|
||||||
results = Proposal.search("stop corruption")
|
results = Proposal.search("stop corruption")
|
||||||
|
|
||||||
expect(results.first).to eq(exact_title_few_votes)
|
expect(results).to eq [exact_title_few_votes, similar_title_many_votes]
|
||||||
expect(results.second).to eq(similar_title_many_votes)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -658,15 +652,11 @@ describe Proposal do
|
|||||||
|
|
||||||
results = Proposal.search("stop corruption")
|
results = Proposal.search("stop corruption")
|
||||||
|
|
||||||
expect(results.first).to eq(average_score)
|
expect(results).to eq [average_score, highest_score, lowest_score]
|
||||||
expect(results.second).to eq(highest_score)
|
|
||||||
expect(results.third).to eq(lowest_score)
|
|
||||||
|
|
||||||
results = results.sort_by_hot_score
|
results = results.sort_by_hot_score
|
||||||
|
|
||||||
expect(results.first).to eq(highest_score)
|
expect(results).to eq [highest_score, average_score, lowest_score]
|
||||||
expect(results.second).to eq(average_score)
|
|
||||||
expect(results.third).to eq(lowest_score)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "is able to reorder by confidence_score after searching" do
|
it "is able to reorder by confidence_score after searching" do
|
||||||
@@ -680,15 +670,11 @@ describe Proposal do
|
|||||||
|
|
||||||
results = Proposal.search("stop corruption")
|
results = Proposal.search("stop corruption")
|
||||||
|
|
||||||
expect(results.first).to eq(average_score)
|
expect(results).to eq [average_score, highest_score, lowest_score]
|
||||||
expect(results.second).to eq(highest_score)
|
|
||||||
expect(results.third).to eq(lowest_score)
|
|
||||||
|
|
||||||
results = results.sort_by_confidence_score
|
results = results.sort_by_confidence_score
|
||||||
|
|
||||||
expect(results.first).to eq(highest_score)
|
expect(results).to eq [highest_score, average_score, lowest_score]
|
||||||
expect(results.second).to eq(average_score)
|
|
||||||
expect(results.third).to eq(lowest_score)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "is able to reorder by created_at after searching" do
|
it "is able to reorder by created_at after searching" do
|
||||||
@@ -698,15 +684,11 @@ describe Proposal do
|
|||||||
|
|
||||||
results = Proposal.search("stop corruption")
|
results = Proposal.search("stop corruption")
|
||||||
|
|
||||||
expect(results.first).to eq(oldest)
|
expect(results).to eq [oldest, newest, recent]
|
||||||
expect(results.second).to eq(newest)
|
|
||||||
expect(results.third).to eq(recent)
|
|
||||||
|
|
||||||
results = results.sort_by_created_at
|
results = results.sort_by_created_at
|
||||||
|
|
||||||
expect(results.first).to eq(newest)
|
expect(results).to eq [newest, recent, oldest]
|
||||||
expect(results.second).to eq(recent)
|
|
||||||
expect(results.third).to eq(oldest)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "is able to reorder by most commented after searching" do
|
it "is able to reorder by most commented after searching" do
|
||||||
@@ -716,15 +698,11 @@ describe Proposal do
|
|||||||
|
|
||||||
results = Proposal.search("stop corruption")
|
results = Proposal.search("stop corruption")
|
||||||
|
|
||||||
expect(results.first).to eq(some_comments)
|
expect(results).to eq [some_comments, most_commented, least_commented]
|
||||||
expect(results.second).to eq(most_commented)
|
|
||||||
expect(results.third).to eq(least_commented)
|
|
||||||
|
|
||||||
results = results.sort_by_most_commented
|
results = results.sort_by_most_commented
|
||||||
|
|
||||||
expect(results.first).to eq(most_commented)
|
expect(results).to eq [most_commented, some_comments, least_commented]
|
||||||
expect(results.second).to eq(some_comments)
|
|
||||||
expect(results.third).to eq(least_commented)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -824,15 +802,13 @@ describe Proposal do
|
|||||||
|
|
||||||
it "orders proposals by votes" do
|
it "orders proposals by votes" do
|
||||||
create(:tag, :category, name: "culture")
|
create(:tag, :category, name: "culture")
|
||||||
create(:proposal, tag_list: "culture").update_column(:confidence_score, 2)
|
create(:proposal, tag_list: "culture").update_column(:confidence_score, 2)
|
||||||
create(:proposal, tag_list: "culture").update_column(:confidence_score, 10)
|
create(:proposal, tag_list: "culture").update_column(:confidence_score, 10)
|
||||||
create(:proposal, tag_list: "culture").update_column(:confidence_score, 5)
|
create(:proposal, tag_list: "culture").update_column(:confidence_score, 5)
|
||||||
|
|
||||||
results = Proposal.for_summary.values.flatten
|
results = Proposal.for_summary.values.flatten
|
||||||
|
|
||||||
expect(results.first.confidence_score).to be(10)
|
expect(results.map(&:confidence_score)).to eq [10, 5, 2]
|
||||||
expect(results.second.confidence_score).to be(5)
|
|
||||||
expect(results.third.confidence_score).to be(2)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "orders groups alphabetically" do
|
it "orders groups alphabetically" do
|
||||||
@@ -846,9 +822,7 @@ describe Proposal do
|
|||||||
|
|
||||||
results = Proposal.for_summary.values.flatten
|
results = Proposal.for_summary.values.flatten
|
||||||
|
|
||||||
expect(results.first).to eq(culture_proposal)
|
expect(results).to eq [culture_proposal, health_proposal, social_proposal]
|
||||||
expect(results.second).to eq(health_proposal)
|
|
||||||
expect(results.third).to eq(social_proposal)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns proposals grouped by tag" do
|
it "returns proposals grouped by tag" do
|
||||||
@@ -992,11 +966,9 @@ describe Proposal do
|
|||||||
proposal4 = create(:proposal, tag_list: "Sport")
|
proposal4 = create(:proposal, tag_list: "Sport")
|
||||||
create(:follow, followable: proposal4, user: user)
|
create(:follow, followable: proposal4, user: user)
|
||||||
|
|
||||||
result = Proposal.recommendations(user).sort_by_recommendations
|
results = Proposal.recommendations(user).sort_by_recommendations
|
||||||
|
|
||||||
expect(result.first).to eq proposal3
|
expect(results).to eq [proposal3, proposal2, proposal1]
|
||||||
expect(result.second).to eq proposal2
|
|
||||||
expect(result.third).to eq proposal1
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns proposals related with user interests" do
|
it "returns proposals related with user interests" do
|
||||||
|
|||||||
@@ -97,8 +97,7 @@ describe TagCloud do
|
|||||||
|
|
||||||
tag_cloud = TagCloud.new(Proposal)
|
tag_cloud = TagCloud.new(Proposal)
|
||||||
|
|
||||||
expect(tag_names(tag_cloud).first).to eq "participation"
|
expect(tag_names(tag_cloud)).to eq ["participation", "corruption"]
|
||||||
expect(tag_names(tag_cloud).second).to eq "corruption"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "orders tags by count and then by name" do
|
it "orders tags by count and then by name" do
|
||||||
@@ -108,9 +107,7 @@ describe TagCloud do
|
|||||||
|
|
||||||
tag_cloud = TagCloud.new(Proposal)
|
tag_cloud = TagCloud.new(Proposal)
|
||||||
|
|
||||||
expect(tag_names(tag_cloud).first).to eq "health"
|
expect(tag_names(tag_cloud)).to eq ["health", "participation", "corruption"]
|
||||||
expect(tag_names(tag_cloud).second).to eq "participation"
|
|
||||||
expect(tag_names(tag_cloud).third).to eq "corruption"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns a maximum of 10 tags" do
|
it "returns a maximum of 10 tags" do
|
||||||
|
|||||||
@@ -37,9 +37,7 @@ describe Topic do
|
|||||||
|
|
||||||
results = community.topics.sort_by_newest
|
results = community.topics.sort_by_newest
|
||||||
|
|
||||||
expect(results.first).to eq(topic3)
|
expect(results).to eq [topic3, topic2, topic1]
|
||||||
expect(results.second).to eq(topic2)
|
|
||||||
expect(results.third).to eq(topic1)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "orders by oldest" do
|
it "orders by oldest" do
|
||||||
@@ -68,9 +66,7 @@ describe Topic do
|
|||||||
|
|
||||||
results = community.topics.sort_by_most_commented
|
results = community.topics.sort_by_most_commented
|
||||||
|
|
||||||
expect(results.first).to eq(topic1)
|
expect(results).to eq [topic1, topic2, topic3]
|
||||||
expect(results.second).to eq(topic2)
|
|
||||||
expect(results.third).to eq(topic3)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user