|
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('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}`, |
|
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 |
|
) |
|
}) |
|
}) |