Chatwoot/spec/factories/contact_inbox.rb
OMAR.A 1819041f5a
fix: "wa_source_id" function return value (#5451)
- Fix contact inbox builder returning invalid WhatsApp source id
- Add specs to cover source id validations

Co-authored-by: Sojan Jose <sojan@pepalo.com>
2022-09-29 10:34:55 -07:00

23 lines
642 B
Ruby

# frozen_string_literal: true
FactoryBot.define do
factory :contact_inbox do
contact
inbox
after(:build) { |contact_inbox| contact_inbox.source_id ||= generate_source_id(contact_inbox) }
end
end
def generate_source_id(contact_inbox)
case contact_inbox.inbox.channel_type
when 'Channel::TwilioSms'
contact_inbox.inbox.channel.medium == 'sms' ? Faker::PhoneNumber.cell_phone_in_e164 : "whatsapp:#{Faker::PhoneNumber.cell_phone_in_e164}"
when 'Channel::Email'
"#{SecureRandom.uuid}@acme.inc"
when 'Channel::Whatsapp'
Faker::PhoneNumber.cell_phone_in_e164.delete('+')
else
SecureRandom.uuid
end
end