From 82a72226bab977c66589eeb21eed608d6ecf1fb7 Mon Sep 17 00:00:00 2001 From: baarkerlounger Date: Mon, 29 Nov 2021 18:29:02 +0000 Subject: [PATCH] Test admin user update without password --- .../admin/admin_users_controller_spec.rb | 29 +++++++++++++---- .../admin/users_controller_spec.rb | 32 ++++++++++++++----- 2 files changed, 47 insertions(+), 14 deletions(-) diff --git a/spec/controllers/admin/admin_users_controller_spec.rb b/spec/controllers/admin/admin_users_controller_spec.rb index 7d2ff0594..12dded589 100644 --- a/spec/controllers/admin/admin_users_controller_spec.rb +++ b/spec/controllers/admin/admin_users_controller_spec.rb @@ -29,14 +29,31 @@ describe Admin::AdminUsersController, type: :controller do end describe "Update admin users" do - before do - get :edit, session: valid_session, params: { id: AdminUser.first.id } + context "edit form" do + before do + get :edit, session: valid_session, params: { id: AdminUser.first.id } + end + + it "shows an edit form" do + expect(page).to have_field("admin_user_email") + expect(page).to have_field("admin_user_password") + expect(page).to have_field("admin_user_password_confirmation") + end end - it "shows an edit form" do - expect(page).to have_field("admin_user_email") - expect(page).to have_field("admin_user_password") - expect(page).to have_field("admin_user_password_confirmation") + context "update" do + let(:admin_user) { FactoryBot.create(:admin_user) } + let(:email) { "new_email@example.com" } + let(:params) { { id: admin_user.id, admin_user: { email: email } } } + + before do + patch :update, session: valid_session, params: params + end + + it "updates the user without needing to input a password" do + admin_user.reload + expect(admin_user.email).to eq(email) + end end end end diff --git a/spec/controllers/admin/users_controller_spec.rb b/spec/controllers/admin/users_controller_spec.rb index 4a70a90de..d33a2421c 100644 --- a/spec/controllers/admin/users_controller_spec.rb +++ b/spec/controllers/admin/users_controller_spec.rb @@ -40,16 +40,32 @@ describe Admin::UsersController, type: :controller do end describe "Update users" do - before do - get :edit, session: valid_session, params: { id: user.id } + context "update form" do + before do + get :edit, session: valid_session, params: { id: user.id } + end + + it "shows an edit form" do + expect(page).to have_field("user_email") + expect(page).to have_field("user_name") + expect(page).to have_field("user_organisation_id") + expect(page).to have_field("user_password") + expect(page).to have_field("user_password_confirmation") + end end - it "shows an edit form" do - expect(page).to have_field("user_email") - expect(page).to have_field("user_name") - expect(page).to have_field("user_organisation_id") - expect(page).to have_field("user_password") - expect(page).to have_field("user_password_confirmation") + context "update" do + let(:name) { "Pete" } + let(:params) { { id: user.id, user: { name: name } } } + + before do + patch :update, session: valid_session, params: params + end + + it "updates the user without needing to input a password" do + user.reload + expect(user.name).to eq(name) + end end end end