mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-01 03:27:52 +00:00
<img width="1240" alt="Screenshot 2025-06-05 at 12 39 04 AM" src="https://github.com/user-attachments/assets/0071cd23-38c3-4638-946e-f1fbd11ec845" /> ## Changes Give the admins an option to delete conversation via the context menu - enable conversation deletion in routes and controller - expose delete API on conversations - add delete option in conversation context menu and integrate with card and list - implement store action and mutation for delete - update i18n with new strings fixes: https://github.com/chatwoot/chatwoot/issues/947 --------- Co-authored-by: iamsivin <iamsivin@gmail.com> Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Co-authored-by: Pranav <pranavrajs@gmail.com>
35 lines
1.1 KiB
Ruby
35 lines
1.1 KiB
Ruby
require 'rails_helper'
|
|
|
|
RSpec.describe 'Conversation Audit', type: :model do
|
|
let(:account) { create(:account) }
|
|
let(:conversation) { create(:conversation, account: account) }
|
|
|
|
before do
|
|
# Enable auditing for conversations
|
|
conversation.class.send(:include, Enterprise::Audit::Conversation) if defined?(Enterprise::Audit::Conversation)
|
|
end
|
|
|
|
describe 'audit logging on destroy' do
|
|
it 'creates an audit log when conversation is destroyed' do
|
|
skip 'Enterprise audit module not available' unless defined?(Enterprise::Audit::Conversation)
|
|
|
|
expect do
|
|
conversation.destroy!
|
|
end.to change(Audited::Audit, :count).by(1)
|
|
|
|
audit = Audited::Audit.last
|
|
expect(audit.auditable_type).to eq('Conversation')
|
|
expect(audit.action).to eq('destroy')
|
|
expect(audit.auditable_id).to eq(conversation.id)
|
|
end
|
|
|
|
it 'does not create audit log for other actions by default' do
|
|
skip 'Enterprise audit module not available' unless defined?(Enterprise::Audit::Conversation)
|
|
|
|
expect do
|
|
conversation.update!(priority: 'high')
|
|
end.not_to(change(Audited::Audit, :count))
|
|
end
|
|
end
|
|
end
|