Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

238
Vistas
Can we mock function which is calling axios function inside without mocking axios in JEST for nodejs code

Please refer below code. Server.js code which is calling an API enclosed in loadUser function and called by fullNameGen function to create full name

const axios = require('axios');

function loadUser(){
    return new Promise((resolve,reject)=>{
        console.log("Load user called");
        axios.get('https://reqres.in/api/users/2').then((response)=>{
            resolve(response);
        }).catch((err)=>{
            reject(err);
        })
    })
    
}

function fullNameGen(){
    return new Promise((res,rej)=>{
        loadUser().then(({data:info})=>{
            console.log(info.data);
            res(info.data.first_name+" "+info.data.last_name);
        }).catch((err)=>{
            console.log(err.message);
            rej(err.message);
        })
    })
    
}

module.exports={
    fullNameGen:fullNameGen,
    loadUser:loadUser
}

And in server.test.js file I am trying to mock loadUser function not the axios directly. But the test still calling axios with the API .

server.test.js

const axios = require('axios');
const server = require('./server');

test("Check full Name generation",async()=>{
    server.loadUser=jest.fn();
    server.loadUser.mockResolvedValue={
        data:{
            data:{
            first_name:"rav",
            last_name:"shekhar"
        }}
    };
    const result = await server.fullNameGen();

    expect(result).toBe("ravi shekhar");
    expect(server.fullNameGen).toBeCalledTimes(1)
})

Please tell me why this test is giving error expect(received).toBe(expected) // Object.is equality

Expected: "ravi shekhar"
Received: "Janet Weaver"

  28 |     const result = await server.fullNameGen();
  29 |
> 30 |     expect(result).toBe("ravi shekhar");
     |                    ^
  31 |     expect(server.fullNameGen).toBeCalledTimes(1)
  32 | })

  at Object.<anonymous> (server.test.js:30:20)
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda