diff --git a/api/models/Agent.spec.js b/api/models/Agent.spec.js index 0b0646f524..97ba9b2948 100644 --- a/api/models/Agent.spec.js +++ b/api/models/Agent.spec.js @@ -1633,7 +1633,7 @@ describe('models/Agent', () => { expect(result.version).toBe(1); }); - test('should return null when user is not author and agent has no projectIds', async () => { + test('should return agent even when user is not author (permissions checked at route level)', async () => { const authorId = new mongoose.Types.ObjectId(); const userId = new mongoose.Types.ObjectId(); const agentId = `agent_${uuidv4()}`; @@ -1654,7 +1654,11 @@ describe('models/Agent', () => { model_parameters: { model: 'gpt-4' }, }); - expect(result).toBeFalsy(); + // With the new permission system, loadAgent returns the agent regardless of permissions + // Permission checks are handled at the route level via middleware + expect(result).toBeTruthy(); + expect(result.id).toBe(agentId); + expect(result.name).toBe('Test Agent'); }); test('should handle ephemeral agent with no MCP servers', async () => { @@ -1762,7 +1766,7 @@ describe('models/Agent', () => { } }); - test('should handle loadAgent with agent from different project', async () => { + test('should return agent from different project (permissions checked at route level)', async () => { const authorId = new mongoose.Types.ObjectId(); const userId = new mongoose.Types.ObjectId(); const agentId = `agent_${uuidv4()}`; @@ -1785,7 +1789,11 @@ describe('models/Agent', () => { model_parameters: { model: 'gpt-4' }, }); - expect(result).toBeFalsy(); + // With the new permission system, loadAgent returns the agent regardless of permissions + // Permission checks are handled at the route level via middleware + expect(result).toBeTruthy(); + expect(result.id).toBe(agentId); + expect(result.name).toBe('Project Agent'); }); }); }); diff --git a/api/server/services/AppService.interface.spec.js b/api/server/services/AppService.interface.spec.js index 4dc5dc375e..f35e706a2c 100644 --- a/api/server/services/AppService.interface.spec.js +++ b/api/server/services/AppService.interface.spec.js @@ -1,14 +1,12 @@ jest.mock('~/models', () => ({ initializeRoles: jest.fn(), + seedDefaultRoles: jest.fn(), })); jest.mock('~/models/Role', () => ({ updateAccessPermissions: jest.fn(), getRoleByName: jest.fn(), updateRoleByName: jest.fn(), })); -jest.mock('~/models/AccessRole', () => ({ - seedDefaultRoles: jest.fn(), -})); jest.mock('~/config', () => ({ logger: { diff --git a/api/server/services/PermissionService.spec.js b/api/server/services/PermissionService.spec.js index ec39b2ccec..07cb1936b4 100644 --- a/api/server/services/PermissionService.spec.js +++ b/api/server/services/PermissionService.spec.js @@ -100,7 +100,8 @@ beforeEach(async () => { }); // Mock getUserPrincipals to avoid depending on the actual implementation -jest.mock('~/models/userGroupMethods', () => ({ +jest.mock('~/models', () => ({ + ...jest.requireActual('~/models'), getUserPrincipals: jest.fn(), }));