Testing the Controller
const catchExceptions = require('../../utils/catchExceptions')
const globalResponseDto = require('../../responses/globalResponseDto')
const userResponseDto = require('../../responses/userResponseDto')
const registerUserRequestDto = require('../../requests/registerUserRequestDto')
const registerUserValidator = require('../../validators/registerUserValidator')
const authService = require('../../domain/services/auth.service')
const EventEmitter = require('events')
const eventEmitter = new EventEmitter()
/**
* Inserts the user into the database and fires off an email notification to that user's email if successful.
*/
const registerUser = catchExceptions(async (req, res) => {
const registerUserRequest = registerUserRequestDto(req.body)
registerUserValidator(registerUserRequest)
const user = await authService.registerUser(registerUserRequest)
eventEmitter.emit('userHasRegistered', user)
res.json(
globalResponseDto({
status: 'success',
code: 200,
message: `The email: ${registerUserRequest.email} has successfully registered.`,
data: userResponseDto(user),
errors: null
})
)
})
module.exports = registerUserThe Test
Last updated