Copy const userResponseDto = (user) => {
return {
id : user[ 'id' ] ,
first_name : user[ 'first_name' ] ,
last_name : user[ 'last_name' ] ,
email : user[ 'email' ] ,
phone_number : user[ 'phone_number' ]
}
}
module . exports = userResponseDto
You may look at this and feel a sense of déjà vu, and you would be right, because writing a test for the userResponseDto
is quite similar to writing a test for the registerUserRequestDto
.
As always we'll setup our test suite as follows.
Copy const userResponseDto = require ( '../userResponseDto' )
describe ( 'Test Suite: userResponseDto' , () => {
// Tests go here
})
Since this is quite an easy function to test, let's add in some more test cases this time.
Copy const userResponseDto = require ( '../userResponseDto' )
describe ( 'Test Suite: Response' , () => {
test ( 'Correct request 1 - empty parameters' , () => {
// 1. Arrange
const user = {}
// 2. Act
const response = userResponseDto (user)
// 3. Assert
expect (response) .toEqual ({})
})
test ( 'Correct request 2 - extra useless parameters' , () => {
// 1. Arrange
const user = {
id : '123' ,
first_name : 'john' ,
last_name : 'doe' ,
email : 'johndoe@email.com' ,
phone_number : '1234567890' ,
password : 'undefined' ,
extraParam1 : null ,
extraParam2 : 'whatzup' ,
body : 'John Doe is cool'
}
// 2. Act
const response = userResponseDto (user)
// 3. Assert
expect (response) .toEqual ({
id : '123' ,
first_name : 'john' ,
last_name : 'doe' ,
email : 'johndoe@email.com' ,
phone_number : '1234567890'
})
})
test ( 'Correct request 3 - add password fields, hopefully they do not show up' , () => {
// 1. Arrange
const user = {
id : '123' ,
first_name : 'Yichen' ,
last_name : 'Zhu' ,
email : 'yichen@yichen.com' ,
password : 'yichen-and-his-awesome-password' ,
password_confirmation : 'yichen-and-his-awesome-password' ,
phone_number : '1234567890'
}
// 2. Act
const response = userResponseDto (user)
// 3. Assert
expect (response) .toEqual ({
id : '123' ,
first_name : 'Yichen' ,
last_name : 'Zhu' ,
email : 'yichen@yichen.com' ,
phone_number : '1234567890'
})
})
})