Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
354 changes: 0 additions & 354 deletions src/api.authz.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -785,360 +785,6 @@ describe('API authz tests', () => {
})
})

describe('AI Models endpoint tests', () => {
test('platform admin can get AI models', async () => {
jest.spyOn(otomiStack, 'getAllAIModels').mockResolvedValue([])
await agent
.get('/alpha/ai/models')
.set('Authorization', `Bearer ${platformAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team admin can get AI models', async () => {
jest.spyOn(otomiStack, 'getAllAIModels').mockResolvedValue([])
await agent
.get('/alpha/ai/models')
.set('Authorization', `Bearer ${teamAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team member can get AI models', async () => {
jest.spyOn(otomiStack, 'getAllAIModels').mockResolvedValue([])
await agent
.get('/alpha/ai/models')
.set('Authorization', `Bearer ${teamMemberToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('anonymous user cannot get AI models', async () => {
await agent.get('/alpha/ai/models').expect(401)
})
})

describe('Knowledge Base endpoint tests', () => {
const kbData = {
kind: 'AkamaiKnowledgeBase',
metadata: { name: 'test-kb' },
spec: { modelName: 'e5-mistral-7b', sourceUrl: 'https://example.com/data.zip' },
}

test('platform admin can create knowledge base', async () => {
jest.spyOn(otomiStack, 'createAplKnowledgeBase').mockResolvedValue({} as any)
await agent
.post('/alpha/teams/team1/kb')
.send(kbData)
.set('Authorization', `Bearer ${platformAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team admin can create knowledge base', async () => {
jest.spyOn(otomiStack, 'createAplKnowledgeBase').mockResolvedValue({} as any)
await agent
.post('/alpha/teams/team1/kb')
.send(kbData)
.set('Authorization', `Bearer ${teamAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team member can create knowledge base', async () => {
jest.spyOn(otomiStack, 'createAplKnowledgeBase').mockResolvedValue({} as any)
await agent
.post('/alpha/teams/team1/kb')
.send(kbData)
.set('Authorization', `Bearer ${teamMemberToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('platform admin can get knowledge bases', async () => {
jest.spyOn(otomiStack, 'getAplKnowledgeBases').mockReturnValue([])
await agent
.get('/alpha/teams/team1/kb')
.set('Authorization', `Bearer ${platformAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team admin can get knowledge bases', async () => {
jest.spyOn(otomiStack, 'getAplKnowledgeBases').mockReturnValue([])
await agent
.get('/alpha/teams/team1/kb')
.set('Authorization', `Bearer ${teamAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team member can get knowledge bases', async () => {
jest.spyOn(otomiStack, 'getAplKnowledgeBases').mockReturnValue([])
await agent
.get('/alpha/teams/team1/kb')
.set('Authorization', `Bearer ${teamMemberToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('platform admin can get specific knowledge base', async () => {
jest.spyOn(otomiStack, 'getAplKnowledgeBase').mockResolvedValue({} as any)
await agent
.get('/alpha/teams/team1/kb/test-kb')
.set('Authorization', `Bearer ${platformAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team admin can get specific knowledge base', async () => {
jest.spyOn(otomiStack, 'getAplKnowledgeBase').mockResolvedValue({} as any)
await agent
.get('/alpha/teams/team1/kb/test-kb')
.set('Authorization', `Bearer ${teamAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team member can get specific knowledge base', async () => {
jest.spyOn(otomiStack, 'getAplKnowledgeBase').mockResolvedValue({} as any)
await agent
.get('/alpha/teams/team1/kb/test-kb')
.set('Authorization', `Bearer ${teamMemberToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('platform admin can update knowledge base', async () => {
jest.spyOn(otomiStack, 'editAplKnowledgeBase').mockResolvedValue({} as any)
await agent
.put('/alpha/teams/team1/kb/test-kb')
.send(kbData)
.set('Authorization', `Bearer ${platformAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team admin can update knowledge base', async () => {
jest.spyOn(otomiStack, 'editAplKnowledgeBase').mockResolvedValue({} as any)
await agent
.put('/alpha/teams/team1/kb/test-kb')
.send(kbData)
.set('Authorization', `Bearer ${teamAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team member can update knowledge base', async () => {
jest.spyOn(otomiStack, 'editAplKnowledgeBase').mockResolvedValue({} as any)
await agent
.put('/alpha/teams/team1/kb/test-kb')
.send(kbData)
.set('Authorization', `Bearer ${teamMemberToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('platform admin can delete knowledge base', async () => {
jest.spyOn(otomiStack, 'deleteAplKnowledgeBase').mockResolvedValue()
await agent
.delete('/alpha/teams/team1/kb/test-kb')
.set('Authorization', `Bearer ${platformAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team admin can delete knowledge base', async () => {
jest.spyOn(otomiStack, 'deleteAplKnowledgeBase').mockResolvedValue()
await agent
.delete('/alpha/teams/team1/kb/test-kb')
.set('Authorization', `Bearer ${teamAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team member can delete knowledge base', async () => {
jest.spyOn(otomiStack, 'deleteAplKnowledgeBase').mockResolvedValue()
await agent
.delete('/alpha/teams/team1/kb/test-kb')
.set('Authorization', `Bearer ${teamMemberToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team member cannot access other team knowledge bases', async () => {
await agent.get('/alpha/teams/team2/kb').set('Authorization', `Bearer ${teamMemberToken}`).expect(403)
})

test('anonymous user cannot access knowledge bases', async () => {
await agent.get('/alpha/teams/team1/kb').expect(401)
})

test('anonymous user cannot create knowledge bases', async () => {
await agent.post('/alpha/teams/team1/kb').send(kbData).expect(401)
})
})

describe('Agent endpoint tests', () => {
const agentData = {
kind: 'AkamaiAgent',
metadata: { name: 'test-agent' },
spec: { foundationModel: 'gpt-4', agentInstructions: 'You are a helpful assistant' },
}

test('platform admin can create agent', async () => {
jest.spyOn(otomiStack, 'createAplAgent').mockResolvedValue({} as any)
await agent
.post('/alpha/teams/team1/agents')
.send(agentData)
.set('Authorization', `Bearer ${platformAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team admin can create agent', async () => {
jest.spyOn(otomiStack, 'createAplAgent').mockResolvedValue({} as any)
await agent
.post('/alpha/teams/team1/agents')
.send(agentData)
.set('Authorization', `Bearer ${teamAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team member can create agent', async () => {
jest.spyOn(otomiStack, 'createAplAgent').mockResolvedValue({} as any)
await agent
.post('/alpha/teams/team1/agents')
.send(agentData)
.set('Authorization', `Bearer ${teamMemberToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('platform admin can get agents', async () => {
jest.spyOn(otomiStack, 'getAplAgents').mockReturnValue([])
await agent
.get('/alpha/teams/team1/agents')
.set('Authorization', `Bearer ${platformAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team admin can get agents', async () => {
jest.spyOn(otomiStack, 'getAplAgents').mockReturnValue([])
await agent
.get('/alpha/teams/team1/agents')
.set('Authorization', `Bearer ${teamAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team member can get agents', async () => {
jest.spyOn(otomiStack, 'getAplAgents').mockReturnValue([])
await agent
.get('/alpha/teams/team1/agents')
.set('Authorization', `Bearer ${teamMemberToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('platform admin can get specific agent', async () => {
jest.spyOn(otomiStack, 'getAplAgent').mockReturnValue({} as any)
await agent
.get('/alpha/teams/team1/agents/test-agent')
.set('Authorization', `Bearer ${platformAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team admin can get specific agent', async () => {
jest.spyOn(otomiStack, 'getAplAgent').mockReturnValue({} as any)
await agent
.get('/alpha/teams/team1/agents/test-agent')
.set('Authorization', `Bearer ${teamAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team member can get specific agent', async () => {
jest.spyOn(otomiStack, 'getAplAgent').mockReturnValue({} as any)
await agent
.get('/alpha/teams/team1/agents/test-agent')
.set('Authorization', `Bearer ${teamMemberToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('platform admin can update agent', async () => {
jest.spyOn(otomiStack, 'editAplAgent').mockResolvedValue({} as any)
await agent
.put('/alpha/teams/team1/agents/test-agent')
.send(agentData)
.set('Authorization', `Bearer ${platformAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team admin can update agent', async () => {
jest.spyOn(otomiStack, 'editAplAgent').mockResolvedValue({} as any)
await agent
.put('/alpha/teams/team1/agents/test-agent')
.send(agentData)
.set('Authorization', `Bearer ${teamAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team member can update agent', async () => {
jest.spyOn(otomiStack, 'editAplAgent').mockResolvedValue({} as any)
await agent
.put('/alpha/teams/team1/agents/test-agent')
.send(agentData)
.set('Authorization', `Bearer ${teamMemberToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('platform admin can delete agent', async () => {
jest.spyOn(otomiStack, 'deleteAplAgent').mockResolvedValue()
await agent
.delete('/alpha/teams/team1/agents/test-agent')
.set('Authorization', `Bearer ${platformAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team admin can delete agent', async () => {
jest.spyOn(otomiStack, 'deleteAplAgent').mockResolvedValue()
await agent
.delete('/alpha/teams/team1/agents/test-agent')
.set('Authorization', `Bearer ${teamAdminToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team member can delete agent', async () => {
jest.spyOn(otomiStack, 'deleteAplAgent').mockResolvedValue()
await agent
.delete('/alpha/teams/team1/agents/test-agent')
.set('Authorization', `Bearer ${teamMemberToken}`)
.expect(200)
.expect('Content-Type', /json/)
})

test('team member cannot access other team agents', async () => {
await agent.get('/alpha/teams/team2/agents').set('Authorization', `Bearer ${teamMemberToken}`).expect(403)
})

test('anonymous user cannot access agents', async () => {
await agent.get('/alpha/teams/team1/agents').expect(401)
})

test('anonymous user cannot create agents', async () => {
await agent.post('/alpha/teams/team1/agents').send(agentData).expect(401)
})
})
test('team member cannot access settings', async () => {
await agent.get('/v1/settings').set('Authorization', `Bearer ${teamMemberToken}`).expect(403)
})
Expand Down
Loading
Loading