Merge pull request #3728 from consul/use_let

Use `let` to remove duplication in specs
This commit is contained in:
Javier Martín
2019-09-30 16:18:22 +02:00
committed by GitHub
4 changed files with 34 additions and 58 deletions

View File

@@ -81,10 +81,10 @@ describe "Valuator groups" do
end end
context "Assign valuators to groups" do context "Assign valuators to groups" do
let(:valuator) { create(:valuator) }
scenario "Add a valuator to a group" do scenario "Add a valuator to a group" do
valuator = create(:valuator) create(:valuator_group, name: "Health")
group = create(:valuator_group, name: "Health")
visit edit_admin_valuator_path(valuator) visit edit_admin_valuator_path(valuator)
@@ -96,10 +96,8 @@ describe "Valuator groups" do
end end
scenario "Update a valuator's group" do scenario "Update a valuator's group" do
valuator = create(:valuator) valuator.update(valuator_group: create(:valuator_group, name: "Economy"))
group1 = create(:valuator_group, name: "Health") create(:valuator_group, name: "Health")
group2 = create(:valuator_group, name: "Economy")
valuator.update(valuator_group: group1)
visit edit_admin_valuator_path(valuator) visit edit_admin_valuator_path(valuator)
select "Economy", from: "valuator_valuator_group_id" select "Economy", from: "valuator_valuator_group_id"
@@ -110,9 +108,7 @@ describe "Valuator groups" do
end end
scenario "Remove a valuator from a group" do scenario "Remove a valuator from a group" do
valuator = create(:valuator) valuator.update(valuator_group: create(:valuator_group, name: "Health"))
group1 = create(:valuator_group, name: "Health")
valuator.update(valuator_group: group1)
visit edit_admin_valuator_path(valuator) visit edit_admin_valuator_path(valuator)
select "", from: "valuator_valuator_group_id" select "", from: "valuator_valuator_group_id"

View File

@@ -142,12 +142,12 @@ describe "Legislation Draft Versions" do
context "Annotations", :js do context "Annotations", :js do
let(:user) { create(:user) } let(:user) { create(:user) }
let(:draft_version) { create(:legislation_draft_version, :published) }
before { login_as user } before { login_as user }
scenario "Visit as anonymous" do scenario "Visit as anonymous" do
logout logout
draft_version = create(:legislation_draft_version, :published)
visit legislation_process_draft_version_path(draft_version.process, draft_version) visit legislation_process_draft_version_path(draft_version.process, draft_version)
@@ -158,8 +158,6 @@ describe "Legislation Draft Versions" do
end end
scenario "Create" do scenario "Create" do
draft_version = create(:legislation_draft_version, :published)
visit legislation_process_draft_version_path(draft_version.process, draft_version) visit legislation_process_draft_version_path(draft_version.process, draft_version)
page.find(:css, ".legislation-annotatable").double_click page.find(:css, ".legislation-annotatable").double_click
@@ -182,7 +180,6 @@ describe "Legislation Draft Versions" do
end end
scenario "View annotations and comments" do scenario "View annotations and comments" do
draft_version = create(:legislation_draft_version, :published)
annotation1 = create(:legislation_annotation, draft_version: draft_version, text: "my annotation", annotation1 = create(:legislation_annotation, draft_version: draft_version, text: "my annotation",
ranges: [{ "start" => "/p[1]", "startOffset" => 5, "end" => "/p[1]", "endOffset" => 10 }]) ranges: [{ "start" => "/p[1]", "startOffset" => 5, "end" => "/p[1]", "endOffset" => 10 }])
create(:legislation_annotation, draft_version: draft_version, text: "my other annotation", create(:legislation_annotation, draft_version: draft_version, text: "my other annotation",
@@ -201,8 +198,7 @@ describe "Legislation Draft Versions" do
end end
scenario "Publish new comment for an annotation from comments box" do scenario "Publish new comment for an annotation from comments box" do
draft_version = create(:legislation_draft_version, :published) create(:legislation_annotation, draft_version: draft_version, text: "my annotation",
annotation = create(:legislation_annotation, draft_version: draft_version, text: "my annotation",
ranges: [{ "start" => "/p[1]", "startOffset" => 6, "end" => "/p[1]", "endOffset" => 11 }]) ranges: [{ "start" => "/p[1]", "startOffset" => 6, "end" => "/p[1]", "endOffset" => 11 }])
visit legislation_process_draft_version_path(draft_version.process, draft_version) visit legislation_process_draft_version_path(draft_version.process, draft_version)
@@ -219,16 +215,15 @@ describe "Legislation Draft Versions" do
end end
context "Merged annotations", :js do context "Merged annotations", :js do
let(:user) { create(:user) } let(:user) { create(:user) }
let(:draft_version) { create(:legislation_draft_version, :published) }
before { login_as user } before { login_as user }
scenario "View annotations and comments in an included range" do scenario "View annotations and comments in an included range" do
draft_version = create(:legislation_draft_version, :published) create(:legislation_annotation, draft_version: draft_version, text: "my annotation",
annotation1 = create(:legislation_annotation, draft_version: draft_version, text: "my annotation",
ranges: [{ "start" => "/p[1]", "startOffset" => 1, "end" => "/p[1]", "endOffset" => 5 }]) ranges: [{ "start" => "/p[1]", "startOffset" => 1, "end" => "/p[1]", "endOffset" => 5 }])
annotation2 = create(:legislation_annotation, draft_version: draft_version, text: "my other annotation", create(:legislation_annotation, draft_version: draft_version, text: "my other annotation",
ranges: [{ "start" => "/p[1]", "startOffset" => 1, "end" => "/p[1]", "endOffset" => 10 }]) ranges: [{ "start" => "/p[1]", "startOffset" => 1, "end" => "/p[1]", "endOffset" => 10 }])
visit legislation_process_draft_version_path(draft_version.process, draft_version) visit legislation_process_draft_version_path(draft_version.process, draft_version)
@@ -246,16 +241,17 @@ describe "Legislation Draft Versions" do
end end
context "Annotations page" do context "Annotations page" do
let(:draft_version) { create(:legislation_draft_version, :published) }
before do before do
@draft_version = create(:legislation_draft_version, :published) create(:legislation_annotation, draft_version: draft_version, text: "my annotation", quote: "ipsum",
create(:legislation_annotation, draft_version: @draft_version, text: "my annotation", quote: "ipsum",
ranges: [{ "start" => "/p[1]", "startOffset" => 6, "end" => "/p[1]", "endOffset" => 11 }]) ranges: [{ "start" => "/p[1]", "startOffset" => 6, "end" => "/p[1]", "endOffset" => 11 }])
create(:legislation_annotation, draft_version: @draft_version, text: "my other annotation", quote: "audiam", create(:legislation_annotation, draft_version: draft_version, text: "my other annotation", quote: "audiam",
ranges: [{ "start" => "/p[3]", "startOffset" => 6, "end" => "/p[3]", "endOffset" => 11 }]) ranges: [{ "start" => "/p[3]", "startOffset" => 6, "end" => "/p[3]", "endOffset" => 11 }])
end end
scenario "See all annotations for a draft version" do scenario "See all annotations for a draft version" do
visit legislation_process_draft_version_annotations_path(@draft_version.process, @draft_version) visit legislation_process_draft_version_annotations_path(draft_version.process, draft_version)
expect(page).to have_content "ipsum" expect(page).to have_content "ipsum"
expect(page).to have_content "audiam" expect(page).to have_content "audiam"
@@ -298,16 +294,17 @@ describe "Legislation Draft Versions" do
end end
context "Annotation comments page" do context "Annotation comments page" do
let(:draft_version) { create(:legislation_draft_version, :published) }
before do before do
@draft_version = create(:legislation_draft_version, :published) create(:legislation_annotation, draft_version: draft_version, text: "my annotation", quote: "ipsum",
create(:legislation_annotation, draft_version: @draft_version, text: "my annotation", quote: "ipsum",
ranges: [{ "start" => "/p[1]", "startOffset" => 6, "end" => "/p[1]", "endOffset" => 11 }]) ranges: [{ "start" => "/p[1]", "startOffset" => 6, "end" => "/p[1]", "endOffset" => 11 }])
@annotation = create(:legislation_annotation, draft_version: @draft_version, text: "my other annotation", quote: "audiam", @annotation = create(:legislation_annotation, draft_version: draft_version, text: "my other annotation", quote: "audiam",
ranges: [{ "start" => "/p[3]", "startOffset" => 6, "end" => "/p[3]", "endOffset" => 11 }]) ranges: [{ "start" => "/p[3]", "startOffset" => 6, "end" => "/p[3]", "endOffset" => 11 }])
end end
scenario "See one annotation with replies for a draft version" do scenario "See one annotation with replies for a draft version" do
visit legislation_process_draft_version_annotation_path(@draft_version.process, @draft_version, @annotation) visit legislation_process_draft_version_annotation_path(draft_version.process, draft_version, @annotation)
expect(page).not_to have_content "ipsum" expect(page).not_to have_content "ipsum"
expect(page).not_to have_content "my annotation" expect(page).not_to have_content "my annotation"

View File

@@ -33,27 +33,23 @@ describe EmailDigest do
end end
describe "pending_notifications?" do describe "pending_notifications?" do
let(:user) { create(:user) }
it "returns true when notifications have not been emailed" do it "returns true when notifications have not been emailed" do
user = create(:user) create(:notification, :for_proposal_notification, user: user)
notification = create(:notification, :for_proposal_notification, user: user)
email_digest = EmailDigest.new(user) email_digest = EmailDigest.new(user)
expect(email_digest.pending_notifications?).to be expect(email_digest.pending_notifications?).to be
end end
it "returns false when notifications have been emailed" do it "returns false when notifications have been emailed" do
user = create(:user) create(:notification, :for_proposal_notification, user: user, emailed_at: Time.current)
notification = create(:notification, :for_proposal_notification, user: user, emailed_at: Time.current)
email_digest = EmailDigest.new(user) email_digest = EmailDigest.new(user)
expect(email_digest.pending_notifications?).not_to be expect(email_digest.pending_notifications?).not_to be
end end
it "returns false when there are no notifications for a user" do it "returns false when there are no notifications for a user" do
user = create(:user)
email_digest = EmailDigest.new(user) email_digest = EmailDigest.new(user)
expect(email_digest.pending_notifications?).not_to be expect(email_digest.pending_notifications?).not_to be
end end
@@ -61,11 +57,10 @@ describe EmailDigest do
end end
describe "deliver" do describe "deliver" do
let(:user) { create(:user) }
it "delivers email if notifications pending" do it "delivers email if notifications pending" do
user = create(:user) create(:notification, :for_proposal_notification, user: user)
notification = create(:notification, :for_proposal_notification, user: user)
reset_mailer reset_mailer
email_digest = EmailDigest.new(user) email_digest = EmailDigest.new(user)
@@ -76,8 +71,6 @@ describe EmailDigest do
end end
it "does not deliver email if no notifications pending" do it "does not deliver email if no notifications pending" do
user = create(:user)
create(:notification, :for_proposal_notification, user: user, emailed_at: Time.current) create(:notification, :for_proposal_notification, user: user, emailed_at: Time.current)
reset_mailer reset_mailer

View File

@@ -1,14 +1,12 @@
require "rails_helper" require "rails_helper"
describe Poll::Voter do describe Poll::Voter do
describe "validations" do
let(:poll) { create(:poll) } let(:poll) { create(:poll) }
let(:booth) { create(:poll_booth) } let(:booth) { create(:poll_booth) }
let(:booth_assignment) { create(:poll_booth_assignment, poll: poll, booth: booth) } let(:booth_assignment) { create(:poll_booth_assignment, poll: poll, booth: booth) }
let(:voter) { create(:poll_voter) } let(:voter) { create(:poll_voter) }
let(:officer_assignment) { create(:poll_officer_assignment) } let(:user) { create(:user, :level_two) }
describe "validations" do
it "is valid" do it "is valid" do
expect(voter).to be_valid expect(voter).to be_valid
@@ -31,8 +29,6 @@ describe Poll::Voter do
end end
it "is not valid if the user has already voted in the same poll or booth_assignment" do it "is not valid if the user has already voted in the same poll or booth_assignment" do
user = create(:user, :level_two)
voter1 = create(:poll_voter, user: user, poll: poll) voter1 = create(:poll_voter, user: user, poll: poll)
voter2 = build(:poll_voter, user: user, poll: poll) voter2 = build(:poll_voter, user: user, poll: poll)
@@ -41,8 +37,6 @@ describe Poll::Voter do
end end
it "is not valid if the user has already voted in the same poll/booth" do it "is not valid if the user has already voted in the same poll/booth" do
user = create(:user, :level_two)
voter1 = create(:poll_voter, user: user, poll: poll, booth_assignment: booth_assignment) voter1 = create(:poll_voter, user: user, poll: poll, booth_assignment: booth_assignment)
voter2 = build(:poll_voter, user: user, poll: poll, booth_assignment: booth_assignment) voter2 = build(:poll_voter, user: user, poll: poll, booth_assignment: booth_assignment)
@@ -51,8 +45,6 @@ describe Poll::Voter do
end end
it "is not valid if the user has already voted in different booth in the same poll" do it "is not valid if the user has already voted in different booth in the same poll" do
user = create(:user, :level_two)
create(:poll_voter, :from_booth, user: user, poll: poll, booth: create(:poll_booth)) create(:poll_voter, :from_booth, user: user, poll: poll, booth: create(:poll_booth))
voter = build(:poll_voter, :from_booth, user: user, poll: poll, booth: booth) voter = build(:poll_voter, :from_booth, user: user, poll: poll, booth: booth)
@@ -62,8 +54,6 @@ describe Poll::Voter do
end end
it "is valid if the user has already voted in the same booth in different poll" do it "is valid if the user has already voted in the same booth in different poll" do
user = create(:user, :level_two)
create(:poll_voter, :from_booth, user: user, booth: booth, poll: create(:poll)) create(:poll_voter, :from_booth, user: user, booth: booth, poll: create(:poll))
voter = build(:poll_voter, :from_booth, user: user, booth: booth, poll: poll) voter = build(:poll_voter, :from_booth, user: user, booth: booth, poll: poll)
@@ -94,7 +84,7 @@ describe Poll::Voter do
it "is valid with a booth origin" do it "is valid with a booth origin" do
voter.origin = "booth" voter.origin = "booth"
voter.officer_assignment = officer_assignment voter.officer_assignment = create(:poll_officer_assignment)
expect(voter).to be_valid expect(voter).to be_valid
end end