From 7433f6d183b8068fce41d10757829ba326a25110 Mon Sep 17 00:00:00 2001 From: Cillian O'Ruanaidh Date: Fri, 13 Feb 2026 09:58:43 +0000 Subject: [PATCH] Rename :save to save! on UserInvitation because it possibly could raise an exception --- app/controllers/admin/user_invitations_controller.rb | 2 +- app/forms/user_invitation.rb | 6 +++--- spec/forms/user_invitation_spec.rb | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/controllers/admin/user_invitations_controller.rb b/app/controllers/admin/user_invitations_controller.rb index ccc8a18def..46bdba4196 100644 --- a/app/controllers/admin/user_invitations_controller.rb +++ b/app/controllers/admin/user_invitations_controller.rb @@ -8,7 +8,7 @@ module Admin def create @user_invitation.attributes = permitted_resource_params - if @user_invitation.save + if @user_invitation.save! flash[:success] = I18n.t(:user_invited, email: @user_invitation.email) else render :new diff --git a/app/forms/user_invitation.rb b/app/forms/user_invitation.rb index 355266d1d6..db7fba54d4 100644 --- a/app/forms/user_invitation.rb +++ b/app/forms/user_invitation.rb @@ -14,17 +14,17 @@ class UserInvitation validates :enterprise, presence: true validate :not_existing_enterprise_user - def save + def save! return unless valid? - user = find_or_create_user + user = find_or_create_user! enterprise.users << user EnterpriseMailer.manager_invitation(enterprise, user).deliver_later end private - def find_or_create_user + def find_or_create_user! Spree::User.find_or_create_by!(email: email) do |user| user.email = email user.password = SecureRandom.base58(64) diff --git a/spec/forms/user_invitation_spec.rb b/spec/forms/user_invitation_spec.rb index 189a0a0cf0..71d69c60a2 100644 --- a/spec/forms/user_invitation_spec.rb +++ b/spec/forms/user_invitation_spec.rb @@ -42,7 +42,7 @@ RSpec.describe UserInvitation do user_invitation = UserInvitation.new(defaults.merge(email: "new_user@example.com")) expect do - user_invitation.save + user_invitation.save! end.to have_enqueued_mail(EnterpriseMailer, :manager_invitation) new_user = Spree::User.find_by(email: "new_user@example.com") @@ -58,7 +58,7 @@ RSpec.describe UserInvitation do user_invitation = UserInvitation.new(defaults.merge(email: existing_user.email)) expect do - user_invitation.save + user_invitation.save! end.to have_enqueued_mail(EnterpriseMailer, :manager_invitation) expect(enterprise.users).to include(existing_user)