Files
openfoodnetwork/spec/system/consumer/account/settings_spec.rb
2024-05-09 12:24:41 +10:00

54 lines
1.6 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# frozen_string_literal: true
require 'system_helper'
RSpec.describe "Account Settings" do
include AuthenticationHelper
describe "as a logged in user" do
let(:user) do
create(:user,
email: 'old@email.com',
password: 'OriginalPassword',
password_confirmation: 'OriginalPassword')
end
before do
login_as user
visit "/account"
find("a", text: /Account Settings/i).click
expect(page).to have_content 'Account Settings'
end
it "allows the user to update their email address" do
fill_in 'user_email', with: 'new@email.com'
expect do
click_button 'Update'
end.to enqueue_job ActionMailer::MailDeliveryJob
expect(enqueued_jobs.last.to_s).to match "new@email.com"
expect(find(".alert-box.success").text.strip).to eq "Account updated!\n×"
user.reload
expect(user.email).to eq 'old@email.com'
expect(user.unconfirmed_email).to eq 'new@email.com'
find("a", text: /Account Settings/i).click
expect(page).to have_content "Pending email confirmation for: %s. \
Your email address will be updated once the new email is confirmed." % 'new@email.com'
end
it "allows the user to change their password" do
initial_password = user.encrypted_password
fill_in 'user_password', with: 'NewPassword'
fill_in 'user_password_confirmation', with: 'NewPassword'
click_button 'Update'
expect(find(".alert-box.success").text.strip).to eq "Account updated!\n×"
expect(user.reload.encrypted_password).not_to eq initial_password
end
end
end