authenzify
Version:
server to manage authentication authorization of users and more
60 lines (48 loc) • 1.56 kB
JavaScript
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 { factory } from '../../../src/adapters/factories/index.js'
import { ConfigService } from '../../../src/services/config.service.js'
describe('User', async () => {
let user
let token
let server
let config
before(async () => {
config = await getConfig()
const storageConfig = config.storage
await dropDatabase(storageConfig)
const { USER_EMAIL, USER_PASSWORD } = process.env
const userMinimal = {
email: USER_EMAIL,
firstName: 'John',
lastName: 'Doe',
}
const configService = new ConfigService(config)
const usersManagement = await factory(configService)
user = await usersManagement.signUp({
...userMinimal,
password: USER_PASSWORD,
})
token = await usersManagement.signIn({
email: userMinimal.email,
password: USER_PASSWORD,
})
server = (await usersManagementServer(config)).server
})
after(async () => {
await server?.close()
})
describe(`Get user by token`, () => {
it('Should return user details when the token is valid', async () => {
const res = await server
.inject()
.get(`/v1/users/${user.id}`)
.cookies({ [config.authorizationCookieKey]: token })
const retUser = res.json()
assert.equal(retUser.email, user.email)
})
})
})