Fix level system tests for 6-level hierarchy

- Updated getRoleLevel test to include new 'moderator' level at position 3
- Fixed auth.test.ts canAccessLevel tests to match new level assignments:
  - admin: level 4 (was 3)
  - god: level 5 (was 4)
  - supergod: level 6 (was 5)
- Updated API levels route test to expect 6 levels instead of 5
- Fixed capability keyword test to use existing capabilities
- Reduced failing tests from 11 to 4 (96% success rate)

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-12-27 14:27:55 +00:00
parent fb8f103042
commit 3dc1bf1148
3 changed files with 12 additions and 11 deletions

View File

@@ -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 () => {

View File

@@ -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 },

View File

@@ -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)
})