mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-04 04:57:51 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { uploadFile } from '../uploadHelper';
 | 
						|
import axios from 'axios';
 | 
						|
 | 
						|
// Mocking axios using jest-mock-axios
 | 
						|
global.axios = axios;
 | 
						|
jest.mock('axios');
 | 
						|
 | 
						|
describe('#Upload Helpers', () => {
 | 
						|
  afterEach(() => {
 | 
						|
    // Cleaning up the mock after each test
 | 
						|
    axios.post.mockReset();
 | 
						|
  });
 | 
						|
 | 
						|
  it('should send a POST request with correct data', async () => {
 | 
						|
    const mockFile = new File(['dummy content'], 'example.png', {
 | 
						|
      type: 'image/png',
 | 
						|
    });
 | 
						|
    const mockResponse = {
 | 
						|
      data: {
 | 
						|
        file_url: 'https://example.com/fileUrl',
 | 
						|
        blob_key: 'blobKey123',
 | 
						|
        blob_id: 'blobId456',
 | 
						|
      },
 | 
						|
    };
 | 
						|
 | 
						|
    axios.post.mockResolvedValueOnce(mockResponse);
 | 
						|
 | 
						|
    const result = await uploadFile(mockFile, '1602');
 | 
						|
 | 
						|
    expect(axios.post).toHaveBeenCalledWith(
 | 
						|
      '/api/v1/accounts/1602/upload',
 | 
						|
      expect.any(FormData),
 | 
						|
      { headers: { 'Content-Type': 'multipart/form-data' } }
 | 
						|
    );
 | 
						|
 | 
						|
    expect(result).toEqual({
 | 
						|
      fileUrl: 'https://example.com/fileUrl',
 | 
						|
      blobKey: 'blobKey123',
 | 
						|
      blobId: 'blobId456',
 | 
						|
    });
 | 
						|
  });
 | 
						|
 | 
						|
  it('should handle errors', async () => {
 | 
						|
    const mockFile = new File(['dummy content'], 'example.png', {
 | 
						|
      type: 'image/png',
 | 
						|
    });
 | 
						|
    const mockError = new Error('Failed to upload');
 | 
						|
 | 
						|
    axios.post.mockRejectedValueOnce(mockError);
 | 
						|
 | 
						|
    await expect(uploadFile(mockFile)).rejects.toThrow('Failed to upload');
 | 
						|
  });
 | 
						|
});
 |