2024-08-26 15:34:46 -04:00
|
|
|
const { SystemRoles, Permissions, PermissionTypes } = require('librechat-data-provider');
|
|
|
|
const { updateAccessPermissions } = require('~/models/Role');
|
2024-08-21 19:57:34 -04:00
|
|
|
const { loadDefaultInterface } = require('./interface');
|
|
|
|
|
|
|
|
jest.mock('~/models/Role', () => ({
|
2024-08-26 15:34:46 -04:00
|
|
|
updateAccessPermissions: jest.fn(),
|
2024-08-21 19:57:34 -04:00
|
|
|
}));
|
|
|
|
|
|
|
|
describe('loadDefaultInterface', () => {
|
2024-08-26 15:34:46 -04:00
|
|
|
it('should call updateAccessPermissions with the correct parameters when prompts and bookmarks are true', async () => {
|
|
|
|
const config = { interface: { prompts: true, bookmarks: true } };
|
2024-08-21 19:57:34 -04:00
|
|
|
const configDefaults = { interface: {} };
|
|
|
|
|
|
|
|
await loadDefaultInterface(config, configDefaults);
|
|
|
|
|
2024-08-26 15:34:46 -04:00
|
|
|
expect(updateAccessPermissions).toHaveBeenCalledWith(SystemRoles.USER, {
|
|
|
|
[PermissionTypes.PROMPTS]: { [Permissions.USE]: true },
|
|
|
|
[PermissionTypes.BOOKMARKS]: { [Permissions.USE]: true },
|
|
|
|
});
|
2024-08-21 19:57:34 -04:00
|
|
|
});
|
|
|
|
|
2024-08-26 15:34:46 -04:00
|
|
|
it('should call updateAccessPermissions with false when prompts and bookmarks are false', async () => {
|
|
|
|
const config = { interface: { prompts: false, bookmarks: false } };
|
2024-08-21 19:57:34 -04:00
|
|
|
const configDefaults = { interface: {} };
|
|
|
|
|
|
|
|
await loadDefaultInterface(config, configDefaults);
|
|
|
|
|
2024-08-26 15:34:46 -04:00
|
|
|
expect(updateAccessPermissions).toHaveBeenCalledWith(SystemRoles.USER, {
|
|
|
|
[PermissionTypes.PROMPTS]: { [Permissions.USE]: false },
|
|
|
|
[PermissionTypes.BOOKMARKS]: { [Permissions.USE]: false },
|
2024-08-22 17:09:05 -04:00
|
|
|
});
|
2024-08-21 19:57:34 -04:00
|
|
|
});
|
|
|
|
|
2024-08-26 15:34:46 -04:00
|
|
|
it('should call updateAccessPermissions with undefined when prompts and bookmarks are not specified in config', async () => {
|
2024-08-21 19:57:34 -04:00
|
|
|
const config = {};
|
|
|
|
const configDefaults = { interface: {} };
|
|
|
|
|
|
|
|
await loadDefaultInterface(config, configDefaults);
|
|
|
|
|
2024-08-26 15:34:46 -04:00
|
|
|
expect(updateAccessPermissions).toHaveBeenCalledWith(SystemRoles.USER, {
|
|
|
|
[PermissionTypes.PROMPTS]: { [Permissions.USE]: undefined },
|
|
|
|
[PermissionTypes.BOOKMARKS]: { [Permissions.USE]: undefined },
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should call updateAccessPermissions with undefined when prompts and bookmarks are explicitly undefined', async () => {
|
|
|
|
const config = { interface: { prompts: undefined, bookmarks: undefined } };
|
|
|
|
const configDefaults = { interface: {} };
|
|
|
|
|
|
|
|
await loadDefaultInterface(config, configDefaults);
|
|
|
|
|
|
|
|
expect(updateAccessPermissions).toHaveBeenCalledWith(SystemRoles.USER, {
|
|
|
|
[PermissionTypes.PROMPTS]: { [Permissions.USE]: undefined },
|
|
|
|
[PermissionTypes.BOOKMARKS]: { [Permissions.USE]: undefined },
|
2024-08-22 17:09:05 -04:00
|
|
|
});
|
2024-08-21 19:57:34 -04:00
|
|
|
});
|
|
|
|
|
2024-08-26 15:34:46 -04:00
|
|
|
it('should call updateAccessPermissions with mixed values for prompts and bookmarks', async () => {
|
|
|
|
const config = { interface: { prompts: true, bookmarks: false } };
|
2024-08-21 19:57:34 -04:00
|
|
|
const configDefaults = { interface: {} };
|
|
|
|
|
|
|
|
await loadDefaultInterface(config, configDefaults);
|
|
|
|
|
2024-08-26 15:34:46 -04:00
|
|
|
expect(updateAccessPermissions).toHaveBeenCalledWith(SystemRoles.USER, {
|
|
|
|
[PermissionTypes.PROMPTS]: { [Permissions.USE]: true },
|
|
|
|
[PermissionTypes.BOOKMARKS]: { [Permissions.USE]: false },
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should call updateAccessPermissions with true when config is undefined', async () => {
|
|
|
|
const config = undefined;
|
|
|
|
const configDefaults = { interface: { prompts: true, bookmarks: true } };
|
|
|
|
|
|
|
|
await loadDefaultInterface(config, configDefaults);
|
|
|
|
|
|
|
|
expect(updateAccessPermissions).toHaveBeenCalledWith(SystemRoles.USER, {
|
|
|
|
[PermissionTypes.PROMPTS]: { [Permissions.USE]: true },
|
|
|
|
[PermissionTypes.BOOKMARKS]: { [Permissions.USE]: true },
|
2024-08-22 17:09:05 -04:00
|
|
|
});
|
2024-08-21 19:57:34 -04:00
|
|
|
});
|
|
|
|
});
|