UNPKG

authenzify

Version:

server to manage authentication authorization of users and more

71 lines (58 loc) 1.97 kB
import getPort from 'get-port' import { before } from 'mocha' import * as assert from 'assert' import { getConfig } from '../../util/settings.js' import { dropDatabase } from '../../util/mongodb-util.js' import { initVerifyToken, usersManagementServer } from '../../../src/index.js' import { USER_SIGNED_UP_OR_IN_BY } from '../../../src/constant.js' describe('Sign In', () => { let config let server let usersManagement before(async () => { const port = await getPort() config = await getConfig({ port }) await dropDatabase(config.storage) const usersManagementsRef = await usersManagementServer(config) server = usersManagementsRef.server usersManagement = usersManagementsRef.usersManagement }) describe(`Code Verifications`, () => { it('Should test Sign In/Up with code via email (Passwordless)', async () => { let verification let eventVerification usersManagement.onSignInUpCodeGenerated( async ({ identifier, verificationInfo }) => { eventVerification = { identifier, ...verificationInfo, } }, ) const assignInfo = { identifier: 'haim@yoyo.co.il', signInVia: USER_SIGNED_UP_OR_IN_BY.EMAIL, } const res = await server .inject() .body(assignInfo) .post('/v1/users/sign-in/code') verification = res.json() assert.equal( verification.verificationId, eventVerification.verificationId, ) const signInResponse = await server .inject() .body(eventVerification) .post('/v1/users/sign-in/verify') const tokenResponse = await signInResponse.json() const { verifyToken } = initVerifyToken({ publicKey: config.publicKey, jwtOptions: config.jwtOptions, }) const encoded = verifyToken(tokenResponse.token) assert.equal(encoded.email, assignInfo.identifier) }) }) })