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" }
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

View File

@@ -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)

View File

@@ -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

View File

@@ -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")

View File

@@ -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