Add trait to create users with proposal and debate

This commit is contained in:
Javi Martín
2019-09-23 18:50:56 +02:00
parent 24e8f07dae
commit 49f81c9488
5 changed files with 24 additions and 29 deletions

View File

@@ -51,6 +51,18 @@ FactoryBot.define do
document_type { "1" } document_type { "1" }
verified_at { Time.current } verified_at { Time.current }
end 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 end
factory :identity do factory :identity do

View File

@@ -483,14 +483,10 @@ describe "Emails" do
context "Newsletter" do context "Newsletter" do
scenario "Send newsletter email to selected users" do scenario "Send newsletter email to selected users" do
user_with_newsletter_in_segment_1 = create(:user, newsletter: true) user_with_newsletter_in_segment_1 = create(:user, :with_proposal, newsletter: true)
user_with_newsletter_in_segment_2 = create(:user, 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_with_newsletter_not_in_segment = create(:user, newsletter: true)
user_without_newsletter_in_segment = create(:user, newsletter: false) user_without_newsletter_in_segment = create(:user, :with_proposal, 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)
admin = create(:administrator) admin = create(:administrator)
login_as(admin.user) login_as(admin.user)

View File

@@ -3,8 +3,7 @@ require "rails_helper"
describe "Proposal Notifications" do describe "Proposal Notifications" do
scenario "Send a notification" do scenario "Send a notification" do
author = create(:user) author = create(:user, :with_proposal)
create(:proposal, author: author)
login_as(author) login_as(author)
visit root_path visit root_path

View File

@@ -156,11 +156,8 @@ describe "Consul Schema" do
end end
it "does not link author if public activity is set to false" do it "does not link author if public activity is set to false" do
visible_author = create(:user, public_activity: true) visible_author = create(:user, :with_proposal, public_activity: true)
hidden_author = create(:user, public_activity: false) hidden_author = create(:user, :with_proposal, public_activity: false)
visible_proposal = create(:proposal, author: visible_author)
hidden_proposal = create(:proposal, author: hidden_author)
response = execute("{ proposals { edges { node { public_author { username } } } } }") response = execute("{ proposals { edges { node { public_author { username } } } } }")
received_authors = extract_fields(response, "proposals", "public_author.username") received_authors = extract_fields(response, "proposals", "public_author.username")
@@ -228,11 +225,8 @@ describe "Consul Schema" do
end end
it "does not link author if public activity is set to false" do it "does not link author if public activity is set to false" do
visible_author = create(:user, public_activity: true) visible_author = create(:user, :with_debate, public_activity: true)
hidden_author = create(:user, public_activity: false) hidden_author = create(:user, :with_debate, public_activity: false)
visible_debate = create(:debate, author: visible_author)
hidden_debate = create(:debate, author: hidden_author)
response = execute("{ debates { edges { node { public_author { username } } } } }") response = execute("{ debates { edges { node { public_author { username } } } } }")
received_authors = extract_fields(response, "debates", "public_author.username") received_authors = extract_fields(response, "debates", "public_author.username")
@@ -291,11 +285,8 @@ describe "Consul Schema" do
end end
it "does not link author if public activity is set to false" do it "does not link author if public activity is set to false" do
visible_author = create(:user, public_activity: true) visible_author = create(:user, :with_comment, public_activity: true)
hidden_author = create(:user, public_activity: false) hidden_author = create(:user, :with_comment, public_activity: false)
visible_comment = create(:comment, author: visible_author)
hidden_comment = create(:comment, author: hidden_author)
response = execute("{ comments { edges { node { public_author { username } } } } }") response = execute("{ comments { edges { node { public_author { username } } } } }")
received_authors = extract_fields(response, "comments", "public_author.username") received_authors = extract_fields(response, "comments", "public_author.username")

View File

@@ -131,11 +131,8 @@ describe Newsletter do
valid_email = "john@gmail.com" valid_email = "john@gmail.com"
invalid_email = "john@gmail..com" invalid_email = "john@gmail..com"
valid_email_user = create(:user, email: valid_email) valid_email_user = create(:user, :with_proposal, email: valid_email)
proposal = create(:proposal, author: valid_email_user) invalid_email_user = create(:user, :with_proposal, email: invalid_email)
invalid_email_user = create(:user, email: invalid_email)
proposal = create(:proposal, author: invalid_email_user)
newsletter.deliver newsletter.deliver