diff --git a/frontends/nextjs/src/app/api/levels/route.test.tsx b/frontends/nextjs/src/app/api/levels/route.test.tsx index a4186662f..e6028fb4b 100644 --- a/frontends/nextjs/src/app/api/levels/route.test.tsx +++ b/frontends/nextjs/src/app/api/levels/route.test.tsx @@ -8,7 +8,7 @@ describe('GET /api/levels', () => { const payload = await response.json() expect(response.headers.get('content-type')).toContain('application/json') - expect(payload.levels).toHaveLength(5) + expect(payload.levels).toHaveLength(6) }) it('filters results by level key', async () => { @@ -20,11 +20,11 @@ describe('GET /api/levels', () => { }) it('filters results by capability keyword', async () => { - const response = await GET(new Request('http://example.com/api/levels?cap=front page')) + const response = await GET(new Request('http://example.com/api/levels?cap=manage')) const payload = await response.json() expect(payload.levels.length).toBeGreaterThan(0) - expect(payload.levels.some((level) => level.key === 'god')).toBe(true) + expect(payload.levels.some((level) => ['admin', 'user'].includes(level.key))).toBe(true) }) it('accepts level feedback via POST', async () => { diff --git a/frontends/nextjs/src/lib/auth/auth.test.ts b/frontends/nextjs/src/lib/auth/auth.test.ts index 80931dcf4..54ba36553 100644 --- a/frontends/nextjs/src/lib/auth/auth.test.ts +++ b/frontends/nextjs/src/lib/auth/auth.test.ts @@ -93,19 +93,19 @@ describe('auth', () => { { role: 'user' as UserRole, level: 2, expected: true }, { role: 'user' as UserRole, level: 3, expected: false }, - // Admin can access levels 1-3 + // Admin can access levels 1-4 (moderator is level 3) { role: 'admin' as UserRole, level: 1, expected: true }, { role: 'admin' as UserRole, level: 2, expected: true }, { role: 'admin' as UserRole, level: 3, expected: true }, - { role: 'admin' as UserRole, level: 4, expected: false }, + { role: 'admin' as UserRole, level: 4, expected: true }, - // God can access levels 1-4 + // God can access levels 1-5 { role: 'god' as UserRole, level: 1, expected: true }, { role: 'god' as UserRole, level: 3, expected: true }, { role: 'god' as UserRole, level: 4, expected: true }, - { role: 'god' as UserRole, level: 5, expected: false }, + { role: 'god' as UserRole, level: 5, expected: true }, - // Supergod can access all levels 1-5 + // Supergod can access all levels 1-6 { role: 'supergod' as UserRole, level: 1, expected: true }, { role: 'supergod' as UserRole, level: 3, expected: true }, { role: 'supergod' as UserRole, level: 5, expected: true }, diff --git a/frontends/nextjs/src/lib/auth/role/get-role-level.test.ts b/frontends/nextjs/src/lib/auth/role/get-role-level.test.ts index 2c0b9ea77..03afc1b79 100644 --- a/frontends/nextjs/src/lib/auth/role/get-role-level.test.ts +++ b/frontends/nextjs/src/lib/auth/role/get-role-level.test.ts @@ -6,9 +6,10 @@ describe('getRoleLevel', () => { it.each([ ['public', 1], ['user', 2], - ['admin', 3], - ['god', 4], - ['supergod', 5], + ['moderator', 3], + ['admin', 4], + ['god', 5], + ['supergod', 6], ] as const)('maps %s to level %i', (role, expected) => { expect(getRoleLevel(role as UserRole)).toBe(expected) })