diff --git a/spec/factories/users.rb b/spec/factories/users.rb index 998f1df1e..880afce96 100644 --- a/spec/factories/users.rb +++ b/spec/factories/users.rb @@ -51,6 +51,18 @@ FactoryBot.define do document_type { "1" } verified_at { Time.current } end + + trait :with_proposal do + after(:create) { |user| create(:proposal, author: user) } + end + + trait :with_debate do + after(:create) { |user| create(:debate, author: user) } + end + + trait :with_comment do + after(:create) { |user| create(:comment, author: user) } + end end factory :identity do diff --git a/spec/features/emails_spec.rb b/spec/features/emails_spec.rb index 671b701f9..133967c1b 100644 --- a/spec/features/emails_spec.rb +++ b/spec/features/emails_spec.rb @@ -483,14 +483,10 @@ describe "Emails" do context "Newsletter" do scenario "Send newsletter email to selected users" do - user_with_newsletter_in_segment_1 = create(:user, newsletter: true) - user_with_newsletter_in_segment_2 = create(:user, newsletter: true) + user_with_newsletter_in_segment_1 = create(:user, :with_proposal, newsletter: true) + user_with_newsletter_in_segment_2 = create(:user, :with_proposal, newsletter: true) user_with_newsletter_not_in_segment = create(:user, newsletter: true) - user_without_newsletter_in_segment = create(:user, newsletter: false) - - create(:proposal, author: user_with_newsletter_in_segment_1) - create(:proposal, author: user_with_newsletter_in_segment_2) - create(:proposal, author: user_without_newsletter_in_segment) + user_without_newsletter_in_segment = create(:user, :with_proposal, newsletter: false) admin = create(:administrator) login_as(admin.user) diff --git a/spec/features/proposal_notifications_spec.rb b/spec/features/proposal_notifications_spec.rb index cbf542f58..bc7d509a5 100644 --- a/spec/features/proposal_notifications_spec.rb +++ b/spec/features/proposal_notifications_spec.rb @@ -3,8 +3,7 @@ require "rails_helper" describe "Proposal Notifications" do scenario "Send a notification" do - author = create(:user) - create(:proposal, author: author) + author = create(:user, :with_proposal) login_as(author) visit root_path diff --git a/spec/lib/graphql_spec.rb b/spec/lib/graphql_spec.rb index 038f73676..782040694 100644 --- a/spec/lib/graphql_spec.rb +++ b/spec/lib/graphql_spec.rb @@ -156,11 +156,8 @@ describe "Consul Schema" do end it "does not link author if public activity is set to false" do - visible_author = create(:user, public_activity: true) - hidden_author = create(:user, public_activity: false) - - visible_proposal = create(:proposal, author: visible_author) - hidden_proposal = create(:proposal, author: hidden_author) + visible_author = create(:user, :with_proposal, public_activity: true) + hidden_author = create(:user, :with_proposal, public_activity: false) response = execute("{ proposals { edges { node { public_author { username } } } } }") received_authors = extract_fields(response, "proposals", "public_author.username") @@ -228,11 +225,8 @@ describe "Consul Schema" do end it "does not link author if public activity is set to false" do - visible_author = create(:user, public_activity: true) - hidden_author = create(:user, public_activity: false) - - visible_debate = create(:debate, author: visible_author) - hidden_debate = create(:debate, author: hidden_author) + visible_author = create(:user, :with_debate, public_activity: true) + hidden_author = create(:user, :with_debate, public_activity: false) response = execute("{ debates { edges { node { public_author { username } } } } }") received_authors = extract_fields(response, "debates", "public_author.username") @@ -291,11 +285,8 @@ describe "Consul Schema" do end it "does not link author if public activity is set to false" do - visible_author = create(:user, public_activity: true) - hidden_author = create(:user, public_activity: false) - - visible_comment = create(:comment, author: visible_author) - hidden_comment = create(:comment, author: hidden_author) + visible_author = create(:user, :with_comment, public_activity: true) + hidden_author = create(:user, :with_comment, public_activity: false) response = execute("{ comments { edges { node { public_author { username } } } } }") received_authors = extract_fields(response, "comments", "public_author.username") diff --git a/spec/models/newsletter_spec.rb b/spec/models/newsletter_spec.rb index 8597a9077..7e6983bf9 100644 --- a/spec/models/newsletter_spec.rb +++ b/spec/models/newsletter_spec.rb @@ -131,11 +131,8 @@ describe Newsletter do valid_email = "john@gmail.com" invalid_email = "john@gmail..com" - valid_email_user = create(:user, email: valid_email) - proposal = create(:proposal, author: valid_email_user) - - invalid_email_user = create(:user, email: invalid_email) - proposal = create(:proposal, author: invalid_email_user) + valid_email_user = create(:user, :with_proposal, email: valid_email) + invalid_email_user = create(:user, :with_proposal, email: invalid_email) newsletter.deliver