'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