Add trait to create users with proposal and debate
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user