Files
growstuff/spec/features/unsubscribing_spec.rb
Daniel O'Connor d1f754a288 Rubocop
2022-11-08 00:23:38 +10:30

61 lines
2.5 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
require 'capybara/email/rspec'
describe "unsubscribe" do
let(:member) { create(:member) }
let(:notification) { create(:notification) }
before { clear_emails }
# TODO: get these working again with chrome headless
pending "from planting reminder mailing list" do
# verifying the initial subscription status of the member
expect(member.send_planting_reminder).to be(true)
expect(member.send_notification_email).to be(true)
# generate planting reminder email
NotifierMailer.planting_reminder(member).deliver_now
open_email(member.email)
# clicking 'Unsubscribe' link will unsubscribe the member
current_email.click_link 'Unsubscribe from planting reminders'
expect(page).to have_content "You have been unsubscribed from planting reminders"
updated_member = Member.find(member.id) # reload the member
expect(updated_member.send_planting_reminder).to be(false)
expect(updated_member.send_notification_email).to be(true)
end
# TODO: get these working again with chrome headless
pending "from inbox notification mailing list" do
# verifying the initial subscription status of the member
expect(member.send_planting_reminder).to be(true)
expect(member.send_notification_email).to be(true)
# generate inbox notification email
notification.recipient = member
NotifierMailer.notify(notification).deliver_now
open_email(member.email)
# clicking 'Unsubscribe' link will unsubscribe the member
current_email.click_link 'Unsubscribe from direct message notifications'
expect(page).to have_content "You have been unsubscribed from direct message notifications"
updated_member = Member.find(member.id) # reload the member
expect(updated_member.send_planting_reminder).to be(true)
expect(updated_member.send_notification_email).to be(false)
end
it "visit unsubscribe page with a non-encrypted parameter" do
# verifying the initial subscription status of the member
expect(member.send_planting_reminder).to be(true)
expect(member.send_notification_email).to be(true)
# visit /members/unsubscribe/somestring ie.parameter to the URL is a random string
visit unsubscribe_member_path("type=send_planting_reminder&member_id=#{member.id}")
expect(page).to have_content "We're sorry, there was an error"
expect(member.send_planting_reminder).to be(true)
expect(member.send_notification_email).to be(true)
end
end