spec/system/subscriptions_spec.rb
require "rails_helper"
describe "Subscriptions" do
let(:user) { create(:user, subscriptions_token: SecureRandom.base58(32)) }
context "Edit page" do
scenario "Render content in the user's preferred locale" do
user.update!(locale: "es")
visit edit_subscriptions_path(token: user.subscriptions_token)
expect(page).to have_content "Notificaciones"
expect(page).to have_field "Recibir un email cuando alguien comenta en mis contenidos", type: :checkbox
expect(page).to have_field "Recibir un email cuando alguien contesta a mis comentarios", type: :checkbox
expect(page).to have_field "Recibir emails con informaciĆ³n interesante sobre la web", type: :checkbox
expect(page).to have_field "Recibir resumen de notificaciones sobre propuestas", type: :checkbox
expect(page).to have_field "Recibir emails con mensajes privados", type: :checkbox
expect(page).to have_button "Guardar cambios"
end
scenario "Use the locale in the parameters when accessing anonymously" do
visit edit_subscriptions_path(token: user.subscriptions_token, locale: :es)
expect(page).to have_content "Notificaciones"
end
end
context "Update" do
scenario "Allow updating the status notification" do
user.update!(email_on_comment: false,
email_on_comment_reply: true,
newsletter: true,
email_digest: false,
email_on_direct_message: true)
visit edit_subscriptions_path(token: user.subscriptions_token)
check "Notify me by email when someone comments on my contents"
uncheck "Notify me by email when someone replies to my comments"
uncheck "Receive relevant information by email"
check "Receive a summary of proposal notifications"
uncheck "Receive emails about direct messages"
click_button "Save changes"
expect(page).to have_content "Changes saved"
expect(page).to have_field "Notify me by email when someone comments on my contents", checked: true
expect(page).to have_field "Notify me by email when someone replies to my comments", checked: false
expect(page).to have_field "Receive relevant information by email", checked: false
expect(page).to have_field "Receive a summary of proposal notifications", checked: true
expect(page).to have_field "Receive emails about direct messages", checked: false
end
end
end