Skip to content

Commit 4633ab8

Browse files
authored
Adding test cases and code coverage
* Added 401 test cases * Handled secret callback error * Updating errorhandler for prod env * Removed unecessary code
1 parent 2e1e4fc commit 4633ab8

File tree

4 files changed

+9
-13
lines changed

4 files changed

+9
-13
lines changed

server/config/errorHandler.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const log = debug('app')
1010
const errorHandler = (err, req, res, next) => {
1111
log(err)
1212

13-
if (err instanceof AppError) return res.status(err.status).json({ error: err.message, stack: process.env.APP_ENVIROMENT === 'dev' ? err.stack : '' })
13+
if (err instanceof AppError) return res.status(err.status).json({ error: err.message, stack: process.env.APP_ENVIROMENT === 'dev' ? err.stack : undefined })
1414

1515
if (err.name === 'UnauthorizedError') return res.status(httpStatus.UNAUTHORIZED).json({ error: err.message })
1616

server/modules/users/users.controller.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,6 @@ users.create = async (req, res) => {
1313
return res.status(httpStatus.CREATED).json({ data: { user } })
1414
}
1515

16-
users.getUserById = async (req, res) => {
17-
let data = await userModel.findOne({ _id: req.params.id }).lean()
18-
let { password, __v, ...user } = data
19-
return res.json({ data: { user } })
20-
}
21-
2216
users.update = async (req, res) => {
2317
let user = await userModel.findById(req.params.id)
2418
if (!user) return res.status(httpStatus.BAD_REQUEST).json({ message: 'User not found' })

server/utils/secretCallback.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import { userModel } from '../modules/users/user.model'
2+
import { httpStatus } from '../utils/httpStatus'
3+
import { AppError } from '../utils/appError'
24

35
export const secretCallback = function (req, payload, done) {
46
let sub = payload.sub
57

68
userModel.findById(sub, function (err, user) {
7-
if (err) {
8-
return done(err)
9-
}
10-
if (!user) {
11-
return done(new Error('missing_secret'))
9+
if (err || !user) {
10+
return done(new AppError('Invalid user', httpStatus.UNAUTHORIZED))
1211
}
1312
return done(null, user.secret)
1413
})

test/integration/app.test.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,10 @@ describe('GET /auth/profile', () => {
7979
expect(response).to.have.status(401)
8080
})
8181

82-
after('Cleaning users collection', async function () {
82+
it('should return 401 invalid user', async () => {
8383
await userModel.findOneAndDelete({ _id: sampleuserid })
84+
let response = await chai.request(server).get(`/api/auth/profile`).set('Authorization', `Bearer ${token}`).send()
85+
expect(response).to.have.status(401)
86+
expect(response.body.error).to.be.equal('Invalid user')
8487
})
8588
})

0 commit comments

Comments
 (0)