Add hall key feature to member management, including UI updates for displaying and editing hall key status. Update API to handle hall key data in member records.
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 1m6s
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 1m6s
This commit is contained in:
@@ -4,6 +4,7 @@ import { createEvent, mockSuccessReadBody } from './setup'
|
||||
vi.mock('../server/utils/auth.js', () => ({
|
||||
verifyToken: vi.fn(),
|
||||
getUserById: vi.fn(),
|
||||
getUserFromToken: vi.fn(),
|
||||
readUsers: vi.fn(),
|
||||
readMembers: vi.fn(),
|
||||
writeUsers: vi.fn(),
|
||||
@@ -24,6 +25,11 @@ vi.mock('../server/utils/auth.js', () => ({
|
||||
if (!user) return false
|
||||
const userRoles = Array.isArray(user.roles) ? user.roles : (user.role ? [user.role] : [])
|
||||
return roles.some(r => userRoles.includes(r))
|
||||
}),
|
||||
hasRole: vi.fn((user, role) => {
|
||||
if (!user) return false
|
||||
const userRoles = Array.isArray(user.roles) ? user.roles : (user.role ? [user.role] : [])
|
||||
return userRoles.includes(role)
|
||||
})
|
||||
}))
|
||||
|
||||
@@ -58,16 +64,18 @@ describe('Members API Endpoints', () => {
|
||||
const event = createEvent({ cookies: { auth_token: 'token' } })
|
||||
authUtils.verifyToken.mockReturnValue({ id: '1' })
|
||||
memberUtils.readMembers.mockResolvedValue([
|
||||
{ id: 'm1', firstName: 'Anna', lastName: 'Muster', email: 'anna@club.de' }
|
||||
{ id: 'm1', firstName: 'Anna', lastName: 'Muster', email: 'anna@club.de', hasHallKey: true, active: true }
|
||||
])
|
||||
authUtils.readUsers.mockResolvedValue([
|
||||
{ id: 'u1', name: 'Ben Nutzer', email: 'ben@club.de', role: 'mitglied', active: true }
|
||||
])
|
||||
authUtils.getUserFromToken.mockResolvedValue({ id: '1', role: 'mitglied' })
|
||||
|
||||
const response = await membersGetHandler(event)
|
||||
|
||||
expect(response.success).toBe(true)
|
||||
expect(response.members).toHaveLength(2)
|
||||
expect(response.members[0]).toHaveProperty('hasHallKey', true)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -76,7 +84,8 @@ describe('Members API Endpoints', () => {
|
||||
firstName: 'Lisa',
|
||||
lastName: 'Beispiel',
|
||||
geburtsdatum: '2000-01-01',
|
||||
email: 'lisa@example.com'
|
||||
email: 'lisa@example.com',
|
||||
hasHallKey: true
|
||||
}
|
||||
|
||||
it('verweigert Zugriff ohne Token', async () => {
|
||||
@@ -113,7 +122,9 @@ describe('Members API Endpoints', () => {
|
||||
|
||||
const response = await membersPostHandler(event)
|
||||
expect(response.success).toBe(true)
|
||||
expect(memberUtils.saveMember).toHaveBeenCalled()
|
||||
expect(memberUtils.saveMember).toHaveBeenCalledWith(expect.objectContaining({
|
||||
hasHallKey: true
|
||||
}))
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user