chore: Automate conversation display_id generation with db triggers (#1412)

Automate conversation display_id generation with db triggers

Co-authored-by: Saurabh Mehta <saurabh1.mehta@airtel.com>
Co-authored-by: Sojan Jose <sojan@pepalo.com>
This commit is contained in:
Saurabh Mehta
2021-01-05 20:07:04 +05:30
committed by GitHub
parent 45059b6fe9
commit 627d3a575a
10 changed files with 102 additions and 18 deletions

View File

@@ -3,7 +3,6 @@
FactoryBot.define do
factory :conversation do
status { 'open' }
display_id { rand(10_000_000) }
agent_last_seen_at { Time.current }
locked { false }
identifier { SecureRandom.hex }

View File

@@ -109,8 +109,8 @@ RSpec.describe Conversation, type: :model do
end
it 'adds a message for system auto resolution if marked resolved by system' do
conversation2 = create(:conversation, status: 'open', account: account, assignee: old_assignee)
account.update(auto_resolve_duration: 40)
conversation2 = create(:conversation, status: 'open', account: account, assignee: old_assignee)
Current.user = nil
conversation2.update(status: :resolved)
system_resolved_message = "Conversation was marked resolved by system due to #{account.auto_resolve_duration} days of inactivity"
@@ -124,7 +124,7 @@ RSpec.describe Conversation, type: :model do
it 'does trigger AutoResolutionJob if conversation reopened and account has auto resolve duration' do
account.update(auto_resolve_duration: 40)
expect { conversation.update(status: :open) }
expect { conversation.reload.update(status: :open) }
.to have_enqueued_job(AutoResolveConversationsJob).with(conversation.id)
end
end

View File

@@ -13,6 +13,7 @@ RSpec.describe Message, type: :model do
let(:message) { build(:message, account: create(:account)) }
it 'updates conversation last_activity_at when created' do
message.save!
expect(message.created_at).to eq message.conversation.last_activity_at
end