mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-01-17 07:55:32 +01:00
88 lines
3.3 KiB
TypeScript
88 lines
3.3 KiB
TypeScript
import { renderHook } from '@testing-library/react';
|
|
import { AgentCapabilities } from 'librechat-data-provider';
|
|
import useAgentCapabilities from '../useAgentCapabilities';
|
|
|
|
describe('useAgentCapabilities', () => {
|
|
it('should return all capabilities as false when capabilities is undefined', () => {
|
|
const { result } = renderHook(() => useAgentCapabilities(undefined));
|
|
|
|
expect(result.current.toolsEnabled).toBe(false);
|
|
expect(result.current.actionsEnabled).toBe(false);
|
|
expect(result.current.artifactsEnabled).toBe(false);
|
|
expect(result.current.ocrEnabled).toBe(false);
|
|
expect(result.current.contextEnabled).toBe(false);
|
|
expect(result.current.fileSearchEnabled).toBe(false);
|
|
expect(result.current.webSearchEnabled).toBe(false);
|
|
expect(result.current.codeEnabled).toBe(false);
|
|
expect(result.current.deferredToolsEnabled).toBe(false);
|
|
});
|
|
|
|
it('should return all capabilities as false when capabilities is empty array', () => {
|
|
const { result } = renderHook(() => useAgentCapabilities([]));
|
|
|
|
expect(result.current.toolsEnabled).toBe(false);
|
|
expect(result.current.deferredToolsEnabled).toBe(false);
|
|
});
|
|
|
|
it('should return true for enabled capabilities', () => {
|
|
const capabilities = [
|
|
AgentCapabilities.tools,
|
|
AgentCapabilities.deferred_tools,
|
|
AgentCapabilities.file_search,
|
|
];
|
|
|
|
const { result } = renderHook(() => useAgentCapabilities(capabilities));
|
|
|
|
expect(result.current.toolsEnabled).toBe(true);
|
|
expect(result.current.deferredToolsEnabled).toBe(true);
|
|
expect(result.current.fileSearchEnabled).toBe(true);
|
|
expect(result.current.actionsEnabled).toBe(false);
|
|
expect(result.current.webSearchEnabled).toBe(false);
|
|
});
|
|
|
|
it('should return deferredToolsEnabled as true when deferred_tools is in capabilities', () => {
|
|
const capabilities = [AgentCapabilities.deferred_tools];
|
|
|
|
const { result } = renderHook(() => useAgentCapabilities(capabilities));
|
|
|
|
expect(result.current.deferredToolsEnabled).toBe(true);
|
|
});
|
|
|
|
it('should return deferredToolsEnabled as false when deferred_tools is not in capabilities', () => {
|
|
const capabilities = [
|
|
AgentCapabilities.tools,
|
|
AgentCapabilities.actions,
|
|
AgentCapabilities.artifacts,
|
|
];
|
|
|
|
const { result } = renderHook(() => useAgentCapabilities(capabilities));
|
|
|
|
expect(result.current.deferredToolsEnabled).toBe(false);
|
|
});
|
|
|
|
it('should handle all capabilities being enabled', () => {
|
|
const capabilities = [
|
|
AgentCapabilities.tools,
|
|
AgentCapabilities.actions,
|
|
AgentCapabilities.artifacts,
|
|
AgentCapabilities.ocr,
|
|
AgentCapabilities.context,
|
|
AgentCapabilities.file_search,
|
|
AgentCapabilities.web_search,
|
|
AgentCapabilities.execute_code,
|
|
AgentCapabilities.deferred_tools,
|
|
];
|
|
|
|
const { result } = renderHook(() => useAgentCapabilities(capabilities));
|
|
|
|
expect(result.current.toolsEnabled).toBe(true);
|
|
expect(result.current.actionsEnabled).toBe(true);
|
|
expect(result.current.artifactsEnabled).toBe(true);
|
|
expect(result.current.ocrEnabled).toBe(true);
|
|
expect(result.current.contextEnabled).toBe(true);
|
|
expect(result.current.fileSearchEnabled).toBe(true);
|
|
expect(result.current.webSearchEnabled).toBe(true);
|
|
expect(result.current.codeEnabled).toBe(true);
|
|
expect(result.current.deferredToolsEnabled).toBe(true);
|
|
});
|
|
});
|