2019-12-03 04:39:45 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
require 'rails_helper'
|
|
|
|
|
|
|
|
RSpec.describe Account do
|
|
|
|
it { is_expected.to validate_presence_of(:name) }
|
2020-11-01 07:23:25 +00:00
|
|
|
it { is_expected.to validate_numericality_of(:auto_resolve_duration).is_greater_than_or_equal_to(1) }
|
2022-01-19 07:46:21 +00:00
|
|
|
it { is_expected.to validate_numericality_of(:auto_resolve_duration).is_less_than_or_equal_to(999) }
|
2019-12-03 04:39:45 +00:00
|
|
|
|
2020-03-07 06:48:16 +00:00
|
|
|
it { is_expected.to have_many(:users).through(:account_users) }
|
|
|
|
it { is_expected.to have_many(:account_users) }
|
2021-11-18 05:02:29 +00:00
|
|
|
it { is_expected.to have_many(:inboxes).dependent(:destroy_async) }
|
|
|
|
it { is_expected.to have_many(:conversations).dependent(:destroy_async) }
|
|
|
|
it { is_expected.to have_many(:contacts).dependent(:destroy_async) }
|
|
|
|
it { is_expected.to have_many(:telegram_bots).dependent(:destroy_async) }
|
|
|
|
it { is_expected.to have_many(:canned_responses).dependent(:destroy_async) }
|
|
|
|
it { is_expected.to have_many(:facebook_pages).class_name('::Channel::FacebookPage').dependent(:destroy_async) }
|
|
|
|
it { is_expected.to have_many(:web_widgets).class_name('::Channel::WebWidget').dependent(:destroy_async) }
|
|
|
|
it { is_expected.to have_many(:webhooks).dependent(:destroy_async) }
|
|
|
|
it { is_expected.to have_many(:notification_settings).dependent(:destroy_async) }
|
2022-02-28 12:46:12 +00:00
|
|
|
it { is_expected.to have_many(:reporting_events) }
|
2022-05-16 08:29:59 +00:00
|
|
|
it { is_expected.to have_many(:portals).dependent(:destroy_async) }
|
|
|
|
it { is_expected.to have_many(:categories).dependent(:destroy_async) }
|
2021-11-18 05:02:29 +00:00
|
|
|
it { is_expected.to have_many(:teams).dependent(:destroy_async) }
|
2021-12-09 06:37:48 +00:00
|
|
|
|
|
|
|
describe 'usage_limits' do
|
|
|
|
let(:account) { create(:account) }
|
|
|
|
|
|
|
|
it 'returns ChatwootApp.max limits' do
|
|
|
|
expect(account.usage_limits).to eq({ agents: ChatwootApp.max_limit, inboxes: ChatwootApp.max_limit })
|
|
|
|
end
|
|
|
|
end
|
2022-03-24 08:03:15 +00:00
|
|
|
|
|
|
|
context 'when after_destroy is called' do
|
|
|
|
it 'conv_dpid_seq and camp_dpid_seq_ are deleted' do
|
|
|
|
account = create(:account)
|
|
|
|
query = "select * from information_schema.sequences where sequence_name in ('camp_dpid_seq_#{account.id}', 'conv_dpid_seq_#{account.id}');"
|
|
|
|
expect(ActiveRecord::Base.connection.execute(query).count).to eq(2)
|
|
|
|
account.destroy
|
|
|
|
expect(ActiveRecord::Base.connection.execute(query).count).to eq(0)
|
|
|
|
end
|
|
|
|
end
|
2019-12-03 04:39:45 +00:00
|
|
|
end
|