|
1 | 1 | import { describe, expect, it, vi } from 'vitest'; |
2 | | -import { createMockSuperAdmin, createMockUser } from '../../../helpers/factories.js'; |
| 2 | +import { createMockUser } from '../../../helpers/factories.js'; |
3 | 3 | import { |
4 | 4 | createCallerFor, |
5 | 5 | expectTRPCError, |
@@ -75,7 +75,7 @@ import { webhooksRouter } from '../../../../src/api/routers/webhooks.js'; |
75 | 75 |
|
76 | 76 | const createCaller = createCallerFor(webhooksRouter); |
77 | 77 |
|
78 | | -const mockUser = createMockSuperAdmin(); |
| 78 | +const mockUser = createMockUser(); |
79 | 79 |
|
80 | 80 | const mockProject = { |
81 | 81 | id: 'my-project', |
@@ -220,9 +220,25 @@ describe('webhooksRouter', () => { |
220 | 220 | await expectTRPCError(caller.list({ projectId: 'my-project' }), 'UNAUTHORIZED'); |
221 | 221 | }); |
222 | 222 |
|
223 | | - it('throws FORBIDDEN for admin role (not superadmin)', async () => { |
| 223 | + it('allows admin role to list webhooks', async () => { |
| 224 | + setupProjectContext(); |
| 225 | + |
| 226 | + mockFetch.mockResolvedValue({ |
| 227 | + ok: true, |
| 228 | + json: () => Promise.resolve([]), |
| 229 | + }); |
| 230 | + mockListWebhooks.mockResolvedValue({ data: [] }); |
| 231 | + |
224 | 232 | const adminUser = createMockUser({ role: 'admin' }); |
225 | 233 | const caller = createCaller({ user: adminUser, effectiveOrgId: adminUser.orgId }); |
| 234 | + const result = await caller.list({ projectId: 'my-project' }); |
| 235 | + expect(result.trello).toEqual([]); |
| 236 | + expect(result.github).toEqual([]); |
| 237 | + }); |
| 238 | + |
| 239 | + it('throws FORBIDDEN for member role', async () => { |
| 240 | + const memberUser = createMockUser({ role: 'member' }); |
| 241 | + const caller = createCaller({ user: memberUser, effectiveOrgId: memberUser.orgId }); |
226 | 242 | await expectTRPCError(caller.list({ projectId: 'my-project' }), 'FORBIDDEN'); |
227 | 243 | }); |
228 | 244 |
|
|
0 commit comments