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