'How to create a test Unit method for a get request that fetches Data from Database(MongoDB)?
Get request method in tasks.js file
const { Task } = require('../model/Tasks.js')
const asyncWrapper =require('../middleware/async')
const getTask = asyncWrapper ( async (req, res) => {
let taskid = req.params.id;
let getaTask = await Task.findById(taskid);
if (!getaTask) { // if the query returns null
return res.status(404).json({ msgs : `NO TASK WITH ID ${taskid}`} ); // error if the syntax for taskid does match
} // but task is null
res.status(200).json({ SingleTask: getaTask });
})
module.exports = {
getallTasks,
getTask,
createTasks,
updateTask,
deleteTask
}
All the routes in the routes.js file as defined:
const express = require('express');
const router = express.Router(); //router object is an isolated instance of middleware and routes.
const { createTasks, deleteTask, getTask, getallTasks, updateTask } = require('../controllers/tasks');
const { create_newUser, VerifyUser} = require('../controllers/users');
//console.log(typeof(deleteTask));
router.route('/all/:UID').get(getallTasks); //the default route
router.route('/all').post(createTasks);
router.route('/:id').get(getTask).patch(updateTask).delete(deleteTask);
router.route('/register').post(create_newUser);
router.route('/login/:name/:pass').get(VerifyUser);
module.exports = router;
tasks.test.js file. Here I want to write the test unit method.
const { getTask } = require('../controllers/tasks');
test("function exists", () => {
expect(getTask).toBeDefined();
});
get request link: http://localhost:3000/tasks/6266b7c6449ce88918d98264
http://localhost:3000/tasks/taskid
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|