mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-10-31 02:57:57 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| require 'rails_helper'
 | |
| 
 | |
| RSpec.describe Account do
 | |
|   it { is_expected.to validate_presence_of(:name) }
 | |
|   it { is_expected.to validate_numericality_of(:auto_resolve_duration).is_greater_than_or_equal_to(1) }
 | |
|   it { is_expected.to validate_numericality_of(:auto_resolve_duration).is_less_than_or_equal_to(999) }
 | |
| 
 | |
|   it { is_expected.to have_many(:users).through(:account_users) }
 | |
|   it { is_expected.to have_many(:account_users) }
 | |
|   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) }
 | |
|   it { is_expected.to have_many(:reporting_events) }
 | |
|   it { is_expected.to have_many(:portals).dependent(:destroy_async) }
 | |
|   it { is_expected.to have_many(:categories).dependent(:destroy_async) }
 | |
|   it { is_expected.to have_many(:teams).dependent(:destroy_async) }
 | |
| 
 | |
|   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
 | |
| 
 | |
|   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)
 | |
|       expect(account.locale).to eq('en')
 | |
|       account.destroy
 | |
|       expect(ActiveRecord::Base.connection.execute(query).count).to eq(0)
 | |
|     end
 | |
|   end
 | |
| end
 | 
