From 0ea91adebf2eaa3c19a220330b5acd2e35673380 Mon Sep 17 00:00:00 2001 From: baarkerlounger Date: Wed, 8 Dec 2021 14:48:09 +0000 Subject: [PATCH] Render gov uk reset view --- app/controllers/auth/passwords_controller.rb | 5 ++++ app/views/users/reset_password.html.erb | 30 ++++++++++++++++++++ spec/requests/user_controller_spec.rb | 8 ++++++ 3 files changed, 43 insertions(+) create mode 100644 app/views/users/reset_password.html.erb diff --git a/app/controllers/auth/passwords_controller.rb b/app/controllers/auth/passwords_controller.rb index 0f6e1c9b0..317c4aa29 100644 --- a/app/controllers/auth/passwords_controller.rb +++ b/app/controllers/auth/passwords_controller.rb @@ -23,6 +23,11 @@ class Auth::PasswordsController < Devise::PasswordsController respond_with({}, location: after_sending_reset_password_instructions_path_for(resource_name)) end + def edit + super + render "users/reset_password" + end + protected def after_sending_reset_password_instructions_path_for(_resource) diff --git a/app/views/users/reset_password.html.erb b/app/views/users/reset_password.html.erb new file mode 100644 index 000000000..0f511f160 --- /dev/null +++ b/app/views/users/reset_password.html.erb @@ -0,0 +1,30 @@ +<% content_for :title, "Reset your password" %> + +<% content_for :before_content do %> + <%= govuk_back_link( + text: 'Back', + href: :back, + ) %> +<% end %> + +<%= form_for(@user, as: :user, html: { method: :patch }) do |f| %> +
+
+

+ <%= content_for(:title) %> +

+ + <%= f.govuk_password_field :new_password, + label: { text: "New password" }, + hint: @minimum_password_length ? { text: "Your password must be at least #{@minimum_password_length} characters and hard to guess." } : nil, + autocomplete: "new-password" + %> + + <%= f.govuk_password_field :password_confirmation, + label: { text: "Confirm new password" } + %> + + <%= f.govuk_submit "Update" %> +
+
+<% end %> diff --git a/spec/requests/user_controller_spec.rb b/spec/requests/user_controller_spec.rb index 26f7bd959..27b8f13a2 100644 --- a/spec/requests/user_controller_spec.rb +++ b/spec/requests/user_controller_spec.rb @@ -37,6 +37,14 @@ RSpec.describe UsersController, type: :request do expect(response).to redirect_to("/users/sign-in") end end + + describe "reset password" do + it "renders the user edit password view" do + raw, enc = Devise.token_generator.generate(User, :reset_password_token) + get "/users/password/edit?reset_password_token=#{enc}" + expect(page).to have_css("h1", class: "govuk-heading-l", text: "Reset your password") + end + end end describe "#show" do