From 9c040af02880d55a0dcfadcf6f8ee6f347c2a022 Mon Sep 17 00:00:00 2001 From: Tejaswini Chile Date: Tue, 21 Mar 2023 10:51:12 +0530 Subject: [PATCH] [CW-1348] fix: Update email regex validation for contact_inbox (#6705) --- app/models/contact_inbox.rb | 5 ----- .../contacts/contact_inboxes_controller_spec.rb | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/models/contact_inbox.rb b/app/models/contact_inbox.rb index 24f3b727a..5e592af1a 100644 --- a/app/models/contact_inbox.rb +++ b/app/models/contact_inbox.rb @@ -59,10 +59,6 @@ class ContactInbox < ApplicationRecord end end - def validate_email_source_id - errors.add(:source_id, "invalid source id for Email inbox. valid Regex #{Devise.email_regexp}") unless Devise.email_regexp.match?(source_id) - end - def validate_whatsapp_source_id return if WHATSAPP_CHANNEL_REGEX.match?(source_id) @@ -71,7 +67,6 @@ class ContactInbox < ApplicationRecord def valid_source_id_format? validate_twilio_source_id if inbox.channel_type == 'Channel::TwilioSms' - validate_email_source_id if inbox.channel_type == 'Channel::Email' validate_whatsapp_source_id if inbox.channel_type == 'Channel::Whatsapp' end end diff --git a/spec/controllers/api/v1/accounts/contacts/contact_inboxes_controller_spec.rb b/spec/controllers/api/v1/accounts/contacts/contact_inboxes_controller_spec.rb index 1414c00e7..2bd393a5a 100644 --- a/spec/controllers/api/v1/accounts/contacts/contact_inboxes_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/contacts/contact_inboxes_controller_spec.rb @@ -2,8 +2,9 @@ require 'rails_helper' RSpec.describe '/api/v1/accounts/{account.id}/contacts/:id/contact_inboxes', type: :request do let(:account) { create(:account) } - let(:contact) { create(:contact, account: account) } + let(:contact) { create(:contact, account: account, email: 'f.o.o.b.a.r@gmail.com') } let(:channel_twilio_sms) { create(:channel_twilio_sms, account: account) } + let(:channel_email) { create(:channel_email, account: account) } let(:channel_api) { create(:channel_api, account: account) } let(:agent) { create(:user, account: account) } @@ -29,6 +30,19 @@ RSpec.describe '/api/v1/accounts/{account.id}/contacts/:id/contact_inboxes', typ expect(contact.reload.contact_inboxes.map(&:inbox_id)).to include(channel_api.inbox.id) end + it 'creates a valid email contact inbox' do + create(:inbox_member, inbox: channel_email.inbox, user: agent) + expect do + post "/api/v1/accounts/#{account.id}/contacts/#{contact.id}/contact_inboxes", + params: { inbox_id: channel_email.inbox.id }, + headers: agent.create_new_auth_token, + as: :json + end.to change(ContactInbox, :count).by(1) + + expect(response).to have_http_status(:success) + expect(contact.reload.contact_inboxes.map(&:inbox_id)).to include(channel_email.inbox.id) + end + it 'throws error for invalid source id' do create(:inbox_member, inbox: channel_twilio_sms.inbox, user: agent) expect do