feat: Activity message for label addition & deletion (#1291)
Fixes: #1022
This commit is contained in:
@@ -58,6 +58,7 @@ RSpec.describe Conversation, type: :model do
|
||||
create(:user, email: 'agent2@example.com', account: account, role: :agent)
|
||||
end
|
||||
let(:assignment_mailer) { double(deliver: true) }
|
||||
let(:label) { create(:label, account: account) }
|
||||
|
||||
before do
|
||||
conversation
|
||||
@@ -70,7 +71,8 @@ RSpec.describe Conversation, type: :model do
|
||||
status: :resolved,
|
||||
locked: true,
|
||||
contact_last_seen_at: Time.now,
|
||||
assignee: new_assignee
|
||||
assignee: new_assignee,
|
||||
label_list: [label.title]
|
||||
)
|
||||
end
|
||||
|
||||
@@ -90,6 +92,7 @@ RSpec.describe Conversation, type: :model do
|
||||
# create_activity
|
||||
expect(conversation.messages.pluck(:content)).to include("Conversation was marked resolved by #{old_assignee.available_name}")
|
||||
expect(conversation.messages.pluck(:content)).to include("Assigned to #{new_assignee.available_name} by #{old_assignee.available_name}")
|
||||
expect(conversation.messages.pluck(:content)).to include("#{old_assignee.available_name} added #{label.title}")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -195,6 +198,48 @@ RSpec.describe Conversation, type: :model do
|
||||
end
|
||||
end
|
||||
|
||||
describe '#update_labels' do
|
||||
let(:account) { create(:account) }
|
||||
let(:conversation) { create(:conversation, account: account) }
|
||||
let(:agent) do
|
||||
create(:user, email: 'agent@example.com', account: account, role: :agent)
|
||||
end
|
||||
let(:first_label) { create(:label, account: account) }
|
||||
let(:second_label) { create(:label, account: account) }
|
||||
let(:third_label) { create(:label, account: account) }
|
||||
let(:fourth_label) { create(:label, account: account) }
|
||||
|
||||
before do
|
||||
conversation
|
||||
Current.user = agent
|
||||
|
||||
first_label
|
||||
second_label
|
||||
third_label
|
||||
fourth_label
|
||||
end
|
||||
|
||||
it 'adds one label to conversation' do
|
||||
labels = [first_label].map(&:title)
|
||||
expect(conversation.update_labels(labels)).to eq(true)
|
||||
expect(conversation.label_list).to match_array(labels)
|
||||
expect(conversation.messages.pluck(:content)).to include("#{agent.available_name} added #{labels.join(', ')}")
|
||||
end
|
||||
|
||||
it 'adds and removes previously added labels' do
|
||||
labels = [first_label, fourth_label].map(&:title)
|
||||
expect(conversation.update_labels(labels)).to eq(true)
|
||||
expect(conversation.label_list).to match_array(labels)
|
||||
expect(conversation.messages.pluck(:content)).to include("#{agent.available_name} added #{labels.join(', ')}")
|
||||
|
||||
updated_labels = [second_label, third_label].map(&:title)
|
||||
expect(conversation.update_labels(updated_labels)).to eq(true)
|
||||
expect(conversation.label_list).to match_array(updated_labels)
|
||||
expect(conversation.messages.pluck(:content)).to include("#{agent.available_name} added #{updated_labels.join(', ')}")
|
||||
expect(conversation.messages.pluck(:content)).to include("#{agent.available_name} removed #{labels.join(', ')}")
|
||||
end
|
||||
end
|
||||
|
||||
describe '#toggle_status' do
|
||||
subject(:toggle_status) { conversation.toggle_status }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user