# frozen_string_literal: true # == Schema Information # # Table name: account_users # # id :bigint not null, primary key # active_at :datetime # auto_offline :boolean default(TRUE), not null # availability :integer default("online"), not null # role :integer default("agent") # created_at :datetime not null # updated_at :datetime not null # account_id :bigint # agent_capacity_policy_id :bigint # custom_role_id :bigint # inviter_id :bigint # user_id :bigint # # Indexes # # index_account_users_on_account_id (account_id) # index_account_users_on_agent_capacity_policy_id (agent_capacity_policy_id) # index_account_users_on_custom_role_id (custom_role_id) # index_account_users_on_user_id (user_id) # uniq_user_id_per_account_id (account_id,user_id) UNIQUE # 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