authenzify
Version:
server to manage authentication authorization of users and more
52 lines (43 loc) • 1.46 kB
JavaScript
import getPort from 'get-port'
import * as assert from 'assert'
import { before, after } from 'mocha'
import { getConfig } from '../../util/settings.js'
import { dropDatabase } from '../../util/mongodb-util.js'
import { usersManagementServer } from '../../../src/app.js'
import { ACTIVATE_USER_BY } from '../../../src/constant.js'
describe('Sign up', async () => {
let token
let server
let config
let credentials
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)
server = (await usersManagementServer(config)).server
await server.inject().post('/v1/users/sign-up').body(credentials)
const res = await server
.inject()
.body(credentials)
.post('/v1/users/sign-in')
const tokenRes = res.json()
token = tokenRes.token
})
after(async () => {
await server?.close()
})
describe(`Verify user by '${ACTIVATE_USER_BY.AUTO}'`, () => {
it('Should return the authenticated user', async () => {
const user = await server
.inject()
.body(credentials)
.get('/v1/users/me')
.cookies({ [config.authorizationCookieKey]: token })
const { email } = user.json()
assert.equal(email, credentials.email)
})
})
})