mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-09-22 06:00:56 +02:00

* refactor: only remove conversation states from localStorage on login/logout but not on refresh * chore: add debugging log for azure completion url * chore: add api-key to redact regex * fix: do not show endpoint selector if endpoint is falsy * chore: remove logger from genAzureChatCompletion * feat(ci): mock fetchEventSource * refactor(ci): mock all model methods in BaseClient.test, as well as mock the implementation for getCompletion in FakeClient * fix(OpenAIClient): consider chatCompletion if model name includes `gpt` as opposed to `gpt-` * fix(ChatGPTClient/azureOpenAI): Remove 'model' option for Azure compatibility (cannot be sent in payload body) * feat(ci): write new test suite that significantly increase test coverage for OpenAIClient and BaseClient by covering most of the real implementation of the `sendMessage` method - test for the azure edge case where model option is appended to modelOptions, ensuring removal before sent to the azure endpoint - test for expected azure url being passed to SSE POST request - test for AZURE_OPENAI_DEFAULT_MODEL being set, but is not included in the URL deployment name as expected - test getCompletion method to have correct payload fix(ci/OpenAIClient.test.js): correctly mock hanging/async methods * refactor(addTitle): allow azure to title as it aborts signal on completion
27 lines
924 B
JavaScript
27 lines
924 B
JavaScript
jest.mock('@waylaidwanderer/fetch-event-source', () => ({
|
|
fetchEventSource: jest
|
|
.fn()
|
|
.mockImplementation((url, { onopen, onmessage, onclose, onerror, error }) => {
|
|
// Simulating the onopen event
|
|
onopen && onopen({ status: 200 });
|
|
|
|
// Simulating a few onmessage events
|
|
onmessage &&
|
|
onmessage({ data: JSON.stringify({ message: 'First message' }), event: 'message' });
|
|
onmessage &&
|
|
onmessage({ data: JSON.stringify({ message: 'Second message' }), event: 'message' });
|
|
onmessage &&
|
|
onmessage({ data: JSON.stringify({ message: 'Third message' }), event: 'message' });
|
|
|
|
// Simulate the onclose event
|
|
onclose && onclose();
|
|
|
|
if (error) {
|
|
// Simulate the onerror event
|
|
onerror && onerror({ status: 500 });
|
|
}
|
|
|
|
// Return a Promise that resolves to simulate async behavior
|
|
return Promise.resolve();
|
|
}),
|
|
}));
|