Skript: 2FA für Mitarbeiter anzeigen, einschalten, abschalten
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0555a2274d
commit
acc86c267b
4 files changed
+161
No files matched your search
@@ -0,0 +1,39 @@
|
||||
import { test, after } from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
import { startAppwriteMock } from './support/appwriteMock.js'
|
||||
import { startFakeStripe } from './support/fakeStripe.js'
|
||||
import { useTestEnv } from './support/testEnv.js'
|
||||
|
||||
// Einrichtungs-Skript mitarbeiter-2fa.mjs: Status, einschalten (erst E-Mail bestaetigen, dann 2FA), abschalten
|
||||
const aw = await startAppwriteMock()
|
||||
const st = await startFakeStripe()
|
||||
useTestEnv({ appwriteUrl: aw.url, stripeUrl: st.url })
|
||||
const { listStaffMfaStatus, enableStaffMfa, disableStaffMfa } = await import('../server/services/staffMfaAdmin.js')
|
||||
after(() => Promise.all([aw.close(), st.close()]))
|
||||
|
||||
aw.addUser({ $id: 'u1', email: 'kenso@webklar.com', name: 'Kenso' })
|
||||
aw.addUser({ $id: 'u2', email: 'justin@webklar.com', name: 'Justin', emailVerification: true, mfa: true })
|
||||
aw.seed('employees', { $id: 'e1', userId: 'u1', displayName: 'Kenso', email: 'kenso@webklar.com' })
|
||||
aw.seed('employees', { $id: 'e2', userId: 'u2', displayName: 'Justin', email: 'justin@webklar.com' })
|
||||
aw.seed('employees', { $id: 'e3', userId: '', displayName: 'Ohne Login', email: 'alt@webklar.com' })
|
||||
|
||||
test('Status: nur Mitarbeiter mit Appwrite-Konto', async () => {
|
||||
assert.deepEqual(await listStaffMfaStatus(), [
|
||||
{ userId: 'u1', name: 'Kenso', email: 'kenso@webklar.com', emailVerification: false, mfa: false },
|
||||
{ userId: 'u2', name: 'Justin', email: 'justin@webklar.com', emailVerification: true, mfa: true },
|
||||
])
|
||||
})
|
||||
|
||||
test('Einschalten: erst E-Mail bestaetigen, dann 2FA', async () => {
|
||||
await enableStaffMfa('u1')
|
||||
assert.deepEqual(aw.userCalls(), ['verification:u1', 'mfa:u1'])
|
||||
assert.equal(aw.user('u1').mfa, true)
|
||||
assert.equal(aw.user('u1').emailVerification, true)
|
||||
})
|
||||
|
||||
test('Abschalten: nur 2FA aus, E-Mail bleibt bestaetigt', async () => {
|
||||
await disableStaffMfa('u2')
|
||||
assert.equal(aw.user('u2').mfa, false)
|
||||
assert.equal(aw.user('u2').emailVerification, true)
|
||||
assert.equal(aw.userCalls().at(-1), 'mfa:u2')
|
||||
})
|
||||
Reference in new issue
Block a user