From 528261c7e3d0d8f18efc68228321d4d5f6453341 Mon Sep 17 00:00:00 2001 From: JG Date: Wed, 27 Jul 2022 12:09:05 +0100 Subject: [PATCH] testing validations for all required attributes --- app/models/user.rb | 2 +- spec/requests/users_controller_spec.rb | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index d56c6751d..ef41d39a3 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -161,7 +161,7 @@ private if User.exists?(["email LIKE ?", "%#{email}%"]) errors.add :email else - errors.add :email, I18n.t("validations.email.invalid") + errors.add :email, I18n.tI18n.t("activerecord.errors.models.user.attributes.email.invalid") end end end diff --git a/spec/requests/users_controller_spec.rb b/spec/requests/users_controller_spec.rb index ad88ee9ce..7619051a2 100644 --- a/spec/requests/users_controller_spec.rb +++ b/spec/requests/users_controller_spec.rb @@ -1605,6 +1605,31 @@ RSpec.describe UsersController, type: :request do expect(response).to redirect_to("/users") end + context "when validations fail" do + let(:params) do + { + "user": { + name: "", + email: "", + role: "", + organisation_id: nil, + }, + } + end + before do + FactoryBot.create(:user, email: "new_user@example.com") + end + + it "shows an error" do + request + expect(response).to have_http_status(:unprocessable_entity) + expect(page).to have_content(I18n.t("activerecord.errors.models.user.attributes.name.blank")) + expect(page).to have_content(I18n.t("activerecord.errors.models.user.attributes.email.blank")) + expect(page).to have_content(I18n.t("activerecord.errors.models.user.attributes.role.blank")) + expect(page).to have_content(I18n.t("activerecord.errors.models.user.attributes.organisation_id.blank")) + end + end + context "when the email is already taken" do before do FactoryBot.create(:user, email: "new_user@example.com")