mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-31 02:42:59 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { DifyClient, BASE_URL, routes } from ".";
 | |
| 
 | |
| import axios from 'axios'
 | |
| 
 | |
| jest.mock('axios')
 | |
| 
 | |
| describe('Client', () => {
 | |
|   let difyClient
 | |
|   beforeEach(() => {
 | |
|     difyClient = new DifyClient('test')
 | |
|   })
 | |
| 
 | |
|   test('should create a client', () => {
 | |
|     expect(difyClient).toBeDefined();
 | |
|   })
 | |
|   // test updateApiKey
 | |
|   test('should update the api key', () => {
 | |
|     difyClient.updateApiKey('test2');
 | |
|     expect(difyClient.apiKey).toBe('test2');
 | |
|   })
 | |
| });
 | |
| 
 | |
| describe('Send Requests', () => {
 | |
|   let difyClient
 | |
| 
 | |
|   beforeEach(() => {
 | |
|     difyClient = new DifyClient('test')
 | |
|   })
 | |
| 
 | |
|   afterEach(() => {
 | |
|     jest.resetAllMocks()
 | |
|   })
 | |
| 
 | |
|   it('should make a successful request to the application parameter', async () => {
 | |
|     const method = 'GET'
 | |
|     const endpoint = routes.application.url
 | |
|     const expectedResponse = { data: 'response' }
 | |
|     axios.mockResolvedValue(expectedResponse)
 | |
| 
 | |
|     await difyClient.sendRequest(method, endpoint)
 | |
| 
 | |
|     expect(axios).toHaveBeenCalledWith({
 | |
|       method,
 | |
|       url: `${BASE_URL}${endpoint}`,
 | |
|       data: null,
 | |
|       params: null,
 | |
|       headers: {
 | |
|         Authorization: `Bearer ${difyClient.apiKey}`,
 | |
|         'Content-Type': 'application/json',
 | |
|       },
 | |
|       responseType: 'json',
 | |
|     })
 | |
| 
 | |
|   })
 | |
| 
 | |
|   it('should handle errors from the API', async () => {
 | |
|     const method = 'GET'
 | |
|     const endpoint = '/test-endpoint'
 | |
|     const errorMessage = 'Request failed with status code 404'
 | |
|     axios.mockRejectedValue(new Error(errorMessage))
 | |
| 
 | |
|     await expect(difyClient.sendRequest(method, endpoint)).rejects.toThrow(
 | |
|       errorMessage
 | |
|     )
 | |
|   })
 | |
| }) | 
