master
1require "rails_helper"
2
3describe "password retrieval" do
4 context "when a user attempts to retrieve their password" do
5 subject { PasswordResetRequestPage.new }
6 let(:user) { create(:user) }
7 let(:error_message) { I18n.t("passwords.send_instructions") }
8
9 it "sends them an email with instructions" do
10 subject.visit_page
11 subject.reset_password(user.email)
12 expect(page).to have_content(error_message)
13 end
14 end
15
16 context "when a reset link is sent" do
17 let(:user) { create(:user, reset_password_token: SecureRandom.hex(32)) }
18 subject { PasswordResetPage.new(user.reset_password_token) }
19
20 it "lets them reset their password" do
21 subject.visit_page
22 subject.change_password_to("donkey")
23 expect(current_path).to eql(new_session_path)
24 expect(user.reload.authenticate("donkey")).to be_truthy
25 end
26 end
27end