Implemented the possibility ofa hidden user for playstore tests
Some checks failed
Code Analysis and Production Deploy / analyze (push) Failing after 5m40s
Code Analysis and Production Deploy / deploy-production (push) Has been skipped
Code Analysis and Production Deploy / deploy-test (push) Has been skipped

This commit is contained in:
Torsten Schulz (local)
2026-06-09 11:32:00 +02:00
parent 300dce9835
commit 530e544542
11 changed files with 184 additions and 42 deletions

View File

@@ -31,7 +31,9 @@ vi.mock('../server/utils/auth.js', () => ({
if (!user) return false
const userRoles = Array.isArray(user.roles) ? user.roles : (user.role ? [user.role] : [])
return userRoles.includes(role)
})
}),
normalizeUserEmail: vi.fn(email => String(email || '').trim().toLowerCase()),
isHiddenUser: vi.fn(user => user?.hidden === true || user?.invisible === true || user?.isHidden === true || user?.systemAccount === true || user?.accountType === 'playstore_review')
}))
vi.mock('../server/utils/members.js', () => ({
@@ -97,6 +99,28 @@ describe('Members API Endpoints', () => {
expect(response.members).toHaveLength(1)
expect(response.members[0].name).toBe('Anna Muster')
})
it('blendet unsichtbare Playstore-Benutzer und passende manuelle Einträge aus', async () => {
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: 'm2', firstName: 'Play', lastName: 'Store', email: 'review@club.de' }
])
authUtils.readUsers.mockResolvedValue([
{ id: 'u1', name: 'Ben Nutzer', email: 'ben@club.de', role: 'mitglied', active: true },
{ id: 'u2', name: 'Playstore Review', email: 'review@club.de', roles: ['mitglied'], active: true, accountType: 'playstore_review' }
])
authUtils.getUserFromToken.mockResolvedValue({ id: '1', role: 'mitglied' })
const response = await membersGetHandler(event)
expect(response.members.map(member => member.email || member.name)).not.toContain('review@club.de')
expect(response.members.map(member => member.name)).not.toContain('Play Store')
expect(response.members.map(member => member.name)).not.toContain('Playstore Review')
expect(response.members).toHaveLength(2)
})
})
describe('POST /api/members', () => {