mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-01 03:27:52 +00:00
This API change sets the foundation for an upcoming frontend update, transitioning from a role-based model to a permission-based model. This new approach will determine eligibility for various actions and UI elements based on specific permissions rather than roles, enhancing flexibility and security in user access management.
46 lines
1.3 KiB
Ruby
46 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe AccountUser do
|
|
include ActiveJob::TestHelper
|
|
|
|
let!(:account_user) { create(:account_user) }
|
|
let!(:inbox) { create(:inbox, account: account_user.account) }
|
|
|
|
describe 'notification_settings' do
|
|
it 'gets created with the right default settings' do
|
|
expect(account_user.user.notification_settings).not_to be_nil
|
|
|
|
expect(account_user.user.notification_settings.first.email_conversation_creation?).to be(false)
|
|
expect(account_user.user.notification_settings.first.email_conversation_assignment?).to be(true)
|
|
end
|
|
end
|
|
|
|
describe 'permissions' do
|
|
it 'returns the right permissions' do
|
|
expect(account_user.permissions).to eq(['agent'])
|
|
end
|
|
|
|
it 'returns the right permissions for administrator' do
|
|
account_user.administrator!
|
|
expect(account_user.permissions).to eq(['administrator'])
|
|
end
|
|
end
|
|
|
|
describe 'destroy call agent::destroy service' do
|
|
it 'gets created with the right default settings' do
|
|
create(:conversation, account: account_user.account, assignee: account_user.user, inbox: inbox)
|
|
user = account_user.user
|
|
|
|
expect(user.assigned_conversations.count).to eq(1)
|
|
|
|
perform_enqueued_jobs do
|
|
account_user.destroy!
|
|
end
|
|
|
|
expect(user.assigned_conversations.count).to eq(0)
|
|
end
|
|
end
|
|
end
|