mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-03 20:48:07 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require 'rails_helper'
 | 
						|
 | 
						|
RSpec.describe Portal do
 | 
						|
  context 'with validations' do
 | 
						|
    it { is_expected.to validate_presence_of(:account_id) }
 | 
						|
    it { is_expected.to validate_presence_of(:slug) }
 | 
						|
    it { is_expected.to validate_presence_of(:name) }
 | 
						|
  end
 | 
						|
 | 
						|
  describe 'associations' do
 | 
						|
    it { is_expected.to belong_to(:account) }
 | 
						|
    it { is_expected.to have_many(:categories) }
 | 
						|
    it { is_expected.to have_many(:folders) }
 | 
						|
    it { is_expected.to have_many(:articles) }
 | 
						|
    it { is_expected.to have_many(:portal_members) }
 | 
						|
    it { is_expected.to have_many(:members) }
 | 
						|
    it { is_expected.to have_many(:inboxes) }
 | 
						|
  end
 | 
						|
 | 
						|
  describe 'validations' do
 | 
						|
    let!(:account) { create(:account) }
 | 
						|
    let!(:portal) { create(:portal, account_id: account.id) }
 | 
						|
 | 
						|
    context 'when set portal config' do
 | 
						|
      it 'Adds default allowed_locales en' do
 | 
						|
        expect(portal.config).to be_present
 | 
						|
        expect(portal.config['allowed_locales']).to eq(['en'])
 | 
						|
        expect(portal.config['default_locale']).to eq('en')
 | 
						|
      end
 | 
						|
 | 
						|
      it 'Does not allow any other config than allowed_locales' do
 | 
						|
        portal.update(config: { 'some_other_key': 'test_value' })
 | 
						|
        expect(portal).not_to be_valid
 | 
						|
        expect(portal.errors.full_messages[0]).to eq('Cofig in portal on some_other_key is not supported.')
 | 
						|
      end
 | 
						|
 | 
						|
      it 'converts empty string to nil' do
 | 
						|
        portal.update(custom_domain: '')
 | 
						|
        expect(portal.custom_domain).to be_nil
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |