From 35143ac43eea6261dfd4efc235677586aabad800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Thu, 26 Sep 2019 19:55:55 +0200 Subject: [PATCH] Use `be_empty` instead of `not_to include` Using `not_to include` does not test for other elements which could be present in the array. --- spec/lib/acts_as_taggable_on_spec.rb | 6 ++--- spec/models/comment_spec.rb | 27 +++++++++---------- spec/models/debate_spec.rb | 10 ++++--- spec/models/proposal_notification_spec.rb | 7 +++-- spec/models/proposal_spec.rb | 23 +++++++++------- spec/models/vote_spec.rb | 32 ++++++++++------------- 6 files changed, 51 insertions(+), 54 deletions(-) diff --git a/spec/lib/acts_as_taggable_on_spec.rb b/spec/lib/acts_as_taggable_on_spec.rb index 9ea565387..4e496ed10 100644 --- a/spec/lib/acts_as_taggable_on_spec.rb +++ b/spec/lib/acts_as_taggable_on_spec.rb @@ -91,13 +91,13 @@ describe ActsAsTaggableOn do proposal.tag_list.add(tag) proposal.save - expect(ActsAsTaggableOn::Tag.public_for_api).not_to include(tag) + expect(ActsAsTaggableOn::Tag.public_for_api).to be_empty end it "blocks tags that don't have at least one tagged element" do - tag = create(:tag) + create(:tag) - expect(ActsAsTaggableOn::Tag.public_for_api).not_to include(tag) + expect(ActsAsTaggableOn::Tag.public_for_api).to be_empty end it "only permits tags on proposals or debates" do diff --git a/spec/models/comment_spec.rb b/spec/models/comment_spec.rb index 01fe265ec..e934db833 100644 --- a/spec/models/comment_spec.rb +++ b/spec/models/comment_spec.rb @@ -143,9 +143,9 @@ describe Comment do end it "does not return hidden comments" do - hidden_comment = create(:comment, :hidden) + create(:comment, :hidden) - expect(Comment.public_for_api).not_to include(hidden_comment) + expect(Comment.public_for_api).to be_empty end it "returns comments on debates" do @@ -155,10 +155,9 @@ describe Comment do end it "does not return comments on hidden debates" do - hidden_debate = create(:debate, :hidden) - comment = create(:comment, commentable: hidden_debate) + create(:comment, commentable: create(:debate, :hidden)) - expect(Comment.public_for_api).not_to include(comment) + expect(Comment.public_for_api).to be_empty end it "returns comments on proposals" do @@ -169,29 +168,27 @@ describe Comment do end it "does not return comments on hidden proposals" do - hidden_proposal = create(:proposal, :hidden) - comment = create(:comment, commentable: hidden_proposal) + create(:comment, commentable: create(:proposal, :hidden)) - expect(Comment.public_for_api).not_to include(comment) + expect(Comment.public_for_api).to be_empty end it "does not return comments on elements which are not debates or proposals" do - budget_investment = create(:budget_investment) - comment = create(:comment, commentable: budget_investment) + create(:comment, commentable: create(:budget_investment)) - expect(Comment.public_for_api).not_to include(comment) + expect(Comment.public_for_api).to be_empty end it "does not return comments with no commentable" do - comment = build(:comment, commentable: nil).save!(validate: false) + build(:comment, commentable: nil).save!(validate: false) - expect(Comment.public_for_api).not_to include(comment) + expect(Comment.public_for_api).to be_empty end it "does not return internal valuation comments" do - valuation_comment = create(:comment, :valuation) + create(:comment, :valuation) - expect(Comment.public_for_api).not_to include(valuation_comment) + expect(Comment.public_for_api).to be_empty end end end diff --git a/spec/models/debate_spec.rb b/spec/models/debate_spec.rb index eac4c2cf0..609facfde 100644 --- a/spec/models/debate_spec.rb +++ b/spec/models/debate_spec.rb @@ -712,8 +712,9 @@ describe Debate do end it "does not show debates created more than a week ago" do - debate = create(:debate, created_at: 8.days.ago) - expect(Debate.last_week.all).not_to include debate + create(:debate, created_at: 8.days.ago) + + expect(Debate.last_week.all).to be_empty end end @@ -731,8 +732,9 @@ describe Debate do end it "does not return hidden debates" do - debate = create(:debate, :hidden) - expect(Debate.public_for_api).not_to include(debate) + create(:debate, :hidden) + + expect(Debate.public_for_api).to be_empty end end diff --git a/spec/models/proposal_notification_spec.rb b/spec/models/proposal_notification_spec.rb index 4a765ed8f..1aa42b918 100644 --- a/spec/models/proposal_notification_spec.rb +++ b/spec/models/proposal_notification_spec.rb @@ -30,16 +30,15 @@ describe ProposalNotification do end it "blocks proposal notifications whose proposal is hidden" do - proposal = create(:proposal, :hidden) - notification = create(:proposal_notification, proposal: proposal) + create(:proposal_notification, proposal: create(:proposal, :hidden)) - expect(ProposalNotification.public_for_api).not_to include(notification) + expect(ProposalNotification.public_for_api).to be_empty end it "blocks proposal notifications without proposal" do build(:proposal_notification, proposal: nil).save!(validate: false) - expect(ProposalNotification.public_for_api).not_to include(notification) + expect(ProposalNotification.public_for_api).to be_empty end end diff --git a/spec/models/proposal_spec.rb b/spec/models/proposal_spec.rb index d13736825..b9fd07ad0 100644 --- a/spec/models/proposal_spec.rb +++ b/spec/models/proposal_spec.rb @@ -745,8 +745,9 @@ describe Proposal do end it "does not return proposals created more than a week ago" do - proposal = create(:proposal, created_at: 8.days.ago) - expect(Proposal.last_week).not_to include(proposal) + create(:proposal, created_at: 8.days.ago) + + expect(Proposal.last_week).to be_empty end end @@ -763,9 +764,9 @@ describe Proposal do it "does not return proposals tagged without a category" do create(:tag, :category, name: "culture") - proposal = create(:proposal, tag_list: "parks") + create(:proposal, tag_list: "parks") - expect(Proposal.for_summary.values.flatten).not_to include(proposal) + expect(Proposal.for_summary.values.flatten).to be_empty end end @@ -780,9 +781,9 @@ describe Proposal do it "does not return proposals without a geozone" do create(:geozone, name: "california") - proposal = create(:proposal) + create(:proposal) - expect(Proposal.for_summary.values.flatten).not_to include(proposal) + expect(Proposal.for_summary.values.flatten).to be_empty end end @@ -795,8 +796,9 @@ describe Proposal do it "does not return proposals created more than a week ago" do create(:tag, :category, name: "culture") - proposal = create(:proposal, tag_list: "culture", created_at: 8.days.ago) - expect(Proposal.for_summary.values.flatten).not_to include(proposal) + create(:proposal, tag_list: "culture", created_at: 8.days.ago) + + expect(Proposal.for_summary.values.flatten).to be_empty end it "orders proposals by votes" do @@ -908,8 +910,9 @@ describe Proposal do end it "does not return hidden proposals" do - proposal = create(:proposal, :hidden) - expect(Proposal.public_for_api).not_to include(proposal) + create(:proposal, :hidden) + + expect(Proposal.public_for_api).to be_empty end end diff --git a/spec/models/vote_spec.rb b/spec/models/vote_spec.rb index 5891a9941..742f860bf 100644 --- a/spec/models/vote_spec.rb +++ b/spec/models/vote_spec.rb @@ -50,10 +50,9 @@ describe Vote do end it "blocks votes on hidden debates" do - debate = create(:debate, :hidden) - vote = create(:vote, votable: debate) + create(:vote, votable: create(:debate, :hidden)) - expect(Vote.public_for_api).not_to include(vote) + expect(Vote.public_for_api).to be_empty end it "returns votes on proposals" do @@ -64,10 +63,9 @@ describe Vote do end it "blocks votes on hidden proposals" do - proposal = create(:proposal, :hidden) - vote = create(:vote, votable: proposal) + create(:vote, votable: create(:proposal, :hidden)) - expect(Vote.public_for_api).not_to include(vote) + expect(Vote.public_for_api).to be_empty end it "returns votes on comments" do @@ -78,39 +76,37 @@ describe Vote do end it "blocks votes on hidden comments" do - comment = create(:comment, :hidden) - vote = create(:vote, votable: comment) + create(:vote, votable: create(:comment, :hidden)) - expect(Vote.public_for_api).not_to include(vote) + expect(Vote.public_for_api).to be_empty end it "blocks votes on comments on hidden proposals" do hidden_proposal = create(:proposal, :hidden) comment_on_hidden_proposal = create(:comment, commentable: hidden_proposal) - vote = create(:vote, votable: comment_on_hidden_proposal) + create(:vote, votable: comment_on_hidden_proposal) - expect(Vote.public_for_api).not_to include(vote) + expect(Vote.public_for_api).to be_empty end it "blocks votes on comments on hidden debates" do hidden_debate = create(:debate, :hidden) comment_on_hidden_debate = create(:comment, commentable: hidden_debate) - vote = create(:vote, votable: comment_on_hidden_debate) + create(:vote, votable: comment_on_hidden_debate) - expect(Vote.public_for_api).not_to include(vote) + expect(Vote.public_for_api).to be_empty end it "blocks any other kind of votes" do - budget_investment = create(:budget_investment) - vote = create(:vote, votable: budget_investment) + create(:vote, votable: create(:budget_investment)) - expect(Vote.public_for_api).not_to include(vote) + expect(Vote.public_for_api).to be_empty end it "blocks votes without votable" do - vote = build(:vote, votable: nil).save!(validate: false) + build(:vote, votable: nil).save!(validate: false) - expect(Vote.public_for_api).not_to include(vote) + expect(Vote.public_for_api).to be_empty end end end