Rename :save to save! on UserInvitation because it possibly could raise an exception

This commit is contained in:
Cillian O'Ruanaidh
2026-02-13 09:58:43 +00:00
committed by Maikel Linke
parent f1071575cd
commit 7433f6d183
3 changed files with 6 additions and 6 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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)