authenzify
Version:
server to manage authentication authorization of users and more
70 lines (61 loc) • 2.06 kB
JavaScript
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 { usersManagementServer } from '../../../src/index.js'
describe('Sign In', () => {
let config
let server
let credentials
let usersManagement
before(async () => {
const port = await getPort()
config = await getConfig({ port })
const { USER_EMAIL, USER_PASSWORD } = process.env
credentials = { email: USER_EMAIL, password: USER_PASSWORD }
const storageConfig = config.storage
await dropDatabase(storageConfig)
const usersManagementsRef = await usersManagementServer(config)
server = usersManagementsRef.server
usersManagement = usersManagementsRef.usersManagement
await usersManagement.signUp({
...credentials,
firstName: 'John',
lastName: 'Doe',
})
})
describe(`Code Verifications`, () => {
it('Should get assign code', async () => {
const token = await usersManagement.signIn(credentials)
const cookies = { [config.authorizationCookieKey]: token }
let verification
let eventVerification
usersManagement.onAssignIdentifierCodeGenerated(
async ({ assignType, identifier, verificationInfo }) => {
eventVerification = {
assignType,
identifier,
verificationId: verificationInfo.verificationId,
}
},
)
const assignInfo = {
assignType: 'phone',
identifier: '+972523555555',
}
const res = await server
.inject()
.post('/v1/users/assign-phone-or-email/code')
.body(assignInfo)
.cookies(cookies)
verification = res.json()
assert.equal(
verification.verificationId,
eventVerification?.verificationId,
)
assert.equal(assignInfo.assignType, eventVerification?.assignType)
assert.equal(assignInfo.identifier, eventVerification?.identifier)
})
})
})