Add invalid newsletter scenarios to feature spec
Newsletters with an invalid user segment should display a warning on show and index. Also those newsletters should not be sent.
This commit is contained in:
@@ -8,7 +8,8 @@ feature "Admin newsletter emails" do
|
|||||||
create(:budget)
|
create(:budget)
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario "Show" do
|
context "Show" do
|
||||||
|
scenario "Valid newsletter" do
|
||||||
newsletter = create(:newsletter, subject: "This is a subject",
|
newsletter = create(:newsletter, subject: "This is a subject",
|
||||||
segment_recipient: 'all_users',
|
segment_recipient: 'all_users',
|
||||||
from: "no-reply@consul.dev",
|
from: "no-reply@consul.dev",
|
||||||
@@ -22,7 +23,18 @@ feature "Admin newsletter emails" do
|
|||||||
expect(page).to have_content "This is a body"
|
expect(page).to have_content "This is a body"
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario "Index" do
|
scenario "Invalid newsletter" do
|
||||||
|
invalid_newsletter = create(:newsletter)
|
||||||
|
invalid_newsletter.update_attribute(:segment_recipient, 'invalid_segment')
|
||||||
|
|
||||||
|
visit admin_newsletter_path(invalid_newsletter)
|
||||||
|
|
||||||
|
expect(page).to have_content("Recipients user segment is invalid")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "Index" do
|
||||||
|
scenario "Valid newsletters" do
|
||||||
3.times { create(:newsletter) }
|
3.times { create(:newsletter) }
|
||||||
|
|
||||||
visit admin_newsletters_path
|
visit admin_newsletters_path
|
||||||
@@ -30,13 +42,24 @@ feature "Admin newsletter emails" do
|
|||||||
expect(page).to have_css(".newsletter", count: 3)
|
expect(page).to have_css(".newsletter", count: 3)
|
||||||
|
|
||||||
Newsletter.all.each do |newsletter|
|
Newsletter.all.each do |newsletter|
|
||||||
|
segment_recipient = I18n.t("admin.segment_recipient.#{newsletter.segment_recipient}")
|
||||||
within("#newsletter_#{newsletter.id}") do
|
within("#newsletter_#{newsletter.id}") do
|
||||||
expect(page).to have_content newsletter.subject
|
expect(page).to have_content newsletter.subject
|
||||||
expect(page).to have_content I18n.t("admin.segment_recipient.#{newsletter.segment_recipient}")
|
expect(page).to have_content segment_recipient
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "Invalid newsletter" do
|
||||||
|
invalid_newsletter = create(:newsletter)
|
||||||
|
invalid_newsletter.update_attribute(:segment_recipient, 'invalid_segment')
|
||||||
|
|
||||||
|
visit admin_newsletters_path
|
||||||
|
|
||||||
|
expect(page).to have_content("Recipients user segment is invalid")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
scenario "Create" do
|
scenario "Create" do
|
||||||
visit admin_newsletters_path
|
visit admin_newsletters_path
|
||||||
click_link "New newsletter"
|
click_link "New newsletter"
|
||||||
@@ -103,7 +126,8 @@ feature "Admin newsletter emails" do
|
|||||||
expect(page).to have_content error_message
|
expect(page).to have_content error_message
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario "Send newsletter email", :js do
|
context "Send newsletter", :js do
|
||||||
|
scenario "Sends newsletter emails", :js do
|
||||||
newsletter = create(:newsletter)
|
newsletter = create(:newsletter)
|
||||||
visit admin_newsletter_path(newsletter)
|
visit admin_newsletter_path(newsletter)
|
||||||
|
|
||||||
@@ -115,12 +139,20 @@ feature "Admin newsletter emails" do
|
|||||||
expect(page).to have_content "Newsletter sent successfully"
|
expect(page).to have_content "Newsletter sent successfully"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "Invalid newsletter cannot be sent", :js do
|
||||||
|
invalid_newsletter = create(:newsletter)
|
||||||
|
invalid_newsletter.update_attribute(:segment_recipient, 'invalid_segment')
|
||||||
|
visit admin_newsletter_path(invalid_newsletter)
|
||||||
|
|
||||||
|
expect(page).not_to have_link("Send")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
scenario "Select list of users to send newsletter" do
|
scenario "Select list of users to send newsletter" do
|
||||||
UserSegments::SEGMENTS.each do |user_segment|
|
UserSegments::SEGMENTS.each do |user_segment|
|
||||||
visit new_admin_newsletter_path
|
visit new_admin_newsletter_path
|
||||||
|
|
||||||
fill_in_newsletter_form
|
fill_in_newsletter_form(segment_recipient: I18n.t("admin.segment_recipient.#{user_segment}"))
|
||||||
select I18n.t("admin.segment_recipient.#{user_segment}"), from: 'newsletter_segment_recipient'
|
|
||||||
click_button "Create Newsletter"
|
click_button "Create Newsletter"
|
||||||
|
|
||||||
expect(page).to have_content(I18n.t("admin.segment_recipient.#{user_segment}"))
|
expect(page).to have_content(I18n.t("admin.segment_recipient.#{user_segment}"))
|
||||||
|
|||||||
Reference in New Issue
Block a user