diff --git a/app/controllers/api/v1/widget/messages_controller.rb b/app/controllers/api/v1/widget/messages_controller.rb index 76efb2c42..306a5f46f 100644 --- a/app/controllers/api/v1/widget/messages_controller.rb +++ b/app/controllers/api/v1/widget/messages_controller.rb @@ -17,7 +17,8 @@ class Api::V1::Widget::MessagesController < Api::V1::Widget::BaseController @message.update!(submitted_email: contact_email) ContactIdentifyAction.new( contact: @contact, - params: { email: contact_email, name: contact_name } + params: { email: contact_email, name: contact_name }, + retain_original_contact_name: true ).perform else @message.update!(message_update_params[:message]) diff --git a/spec/controllers/api/v1/widget/messages_controller_spec.rb b/spec/controllers/api/v1/widget/messages_controller_spec.rb index 2525d79dd..f138b5738 100644 --- a/spec/controllers/api/v1/widget/messages_controller_spec.rb +++ b/spec/controllers/api/v1/widget/messages_controller_spec.rb @@ -159,7 +159,7 @@ RSpec.describe '/api/v1/widget/messages', type: :request do it 'updates message in conversation and deletes the current contact' do message = create(:message, account: account, content_type: 'input_email', inbox: web_widget.inbox, conversation: conversation) email = Faker::Internet.email - create(:contact, account: account, email: email) + existing_contact = create(:contact, account: account, email: email, name: 'John Doe') contact_params = { email: email } put api_v1_widget_message_url(message.id), params: { website_token: web_widget.website_token, contact: contact_params }, @@ -168,6 +168,7 @@ RSpec.describe '/api/v1/widget/messages', type: :request do expect(response).to have_http_status(:success) message.reload + expect(existing_contact.reload.name).to eq('John Doe') expect { contact.reload }.to raise_error(ActiveRecord::RecordNotFound) end