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

@@ -26,7 +26,8 @@ vi.mock('../server/utils/auth.js', () => ({
user.roles = ['mitglied']
}
return user
})
}),
isHiddenUser: vi.fn(user => user?.hidden === true || user?.invisible === true || user?.isHidden === true || user?.systemAccount === true || user?.accountType === 'playstore_review')
}))
vi.mock('nodemailer', () => {
@@ -96,6 +97,20 @@ describe('CMS User Management Endpoints', () => {
expect(response.users[0]).not.toHaveProperty('password')
expect(response.users).toHaveLength(1)
})
it('blendet unsichtbare Playstore-Benutzer auch für Admins aus', async () => {
const event = adminEvent()
authUtils.readUsers.mockResolvedValue([
{ id: '1', email: 'a@b.de', name: 'Anna', roles: ['mitglied'], active: true },
{ id: '2', email: 'review@club.de', name: 'Playstore Review', roles: ['mitglied'], active: true, accountType: 'playstore_review' }
])
const response = await usersListHandler(event)
expect(response.users).toHaveLength(1)
expect(response.users[0].email).toBe('a@b.de')
})
})
describe('POST /api/cms/users/approve', () => {
@@ -239,5 +254,31 @@ describe('CMS User Management Endpoints', () => {
expect(response.attempts).toHaveLength(1)
expect(response.attempts[0]).toMatchObject({ requestId: 'r1', failed: true })
})
it('blendet unsichtbare Benutzer und ihre Reset-Logs in der Diagnose aus', async () => {
const event = adminEvent()
event.__query = { email: 'review@club.de', failedOnly: 'false' }
authUtils.hasRole.mockReturnValue(true)
authUtils.readUsers.mockResolvedValue([
{ id: '2', email: 'review@club.de', name: 'Playstore Review', active: true, accountType: 'playstore_review' }
])
passwordResetLog.readPasswordResetLogs.mockResolvedValue([
{
requestId: 'r-hidden',
ts: '2026-05-27T10:00:01.000Z',
emailMasked: 're***@cl***.de',
emailFingerprint: 'fingerprint:review@club.de',
ip: '127.0.0.1',
step: 'request_completed',
status: 'failed'
}
])
const response = await passwordResetDiagnosticsHandler(event)
expect(response.matchingUsers).toHaveLength(0)
expect(response.attempts).toHaveLength(0)
})
})
})