mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-03 20:48:07 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require 'rails_helper'
 | 
						|
 | 
						|
RSpec.describe SlackUploadsController do
 | 
						|
  describe 'GET #show' do
 | 
						|
    context 'when a valid blob key is provided' do
 | 
						|
      file = Rack::Test::UploadedFile.new('spec/assets/avatar.png', 'image/png')
 | 
						|
      blob = ActiveStorage::Blob.create_and_upload! io: file, filename: 'avatar.png'
 | 
						|
 | 
						|
      it 'redirects to the blob service URL' do
 | 
						|
        get :show, params: { blob_key: blob.key }
 | 
						|
        redirect_path = response.location
 | 
						|
        expect(redirect_path).to match(%r{rails/active_storage/representations/redirect/.*/avatar.png})
 | 
						|
      end
 | 
						|
    end
 | 
						|
 | 
						|
    context 'when an invalid blob key is provided' do
 | 
						|
      it 'returns contact default avatar url if the user is contact' do
 | 
						|
        get :show, params: { key: 'invalid_key', sender_type: 'contact' }
 | 
						|
        redirect_path = response.location
 | 
						|
        expect(redirect_path).to match(%r{integrations/slack/contact.png})
 | 
						|
      end
 | 
						|
 | 
						|
      it 'returns agent default avatar url if the user is agent' do
 | 
						|
        get :show, params: { key: 'invalid_key', sender_type: 'user' }
 | 
						|
        redirect_path = response.location
 | 
						|
        expect(redirect_path).to match(%r{integrations/slack/user.png})
 | 
						|
      end
 | 
						|
    end
 | 
						|
 | 
						|
    context 'when no blob key is provided' do
 | 
						|
      it 'returns contact default avatar url if the user is contact' do
 | 
						|
        get :show, params: { sender_type: 'contact' }
 | 
						|
        redirect_path = response.location
 | 
						|
        expect(redirect_path).to match(%r{integrations/slack/contact.png})
 | 
						|
      end
 | 
						|
 | 
						|
      it 'returns agent default avatar url if the user is agent' do
 | 
						|
        get :show, params: { sender_type: 'user' }
 | 
						|
        redirect_path = response.location
 | 
						|
        expect(redirect_path).to match(%r{integrations/slack/user.png})
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |