Archivo: index.ts // Valor predeterminado basado en clase exportado
getItemsA() { return Promise.resolve({ // Api Call in real scenario. Mocking here for now. success: true; result: [{ itemA: [] }] }); } getItemsB() { return Promise.resolve({ // Api Call in real scenario. Mocking here for now. success: true; result: [{ itemB: [] }] }); }Archivo service.ts
import { getItemsA, getItemsB } from 'index.ts'; getService() { return new Promise(async (resolve, reject) => { const parallelApis = await Promise.all([ // UT Stucks here. Not able to get the parallelApis response. getItemsA(), getItemsB() ]); .... other mapping resolve({ ....... }); }); }Archivo prueba.ts
import items from 'index.ts'; // Class based. Default exported import service from 'service.ts'; // Class based. Default exported import { expect } from "chai"; import * as sinon from "sinon"; describe.only("Service", () => { let itemAStub; let itemBStub; beforeEach(() => { itemAStub = sinon.stub(items, "getItemsA"); itemBStub = sinon.stub(items, "getItemsB"); itemAStub.callsFake(() => { return Promise.resolve({ body: myMock // Dummy }); }); itemBStub.callsFake(() => { return Promise.resolve({ body: someOtherMock // Dummy }); }); }); afterEach(() => { itemAStub.restore(); itemBStub.restore(); }); it("Should filter valid gift options", (done) => { service.getService().then(res => { console.log("RESPONSEEEEEE", res); expect(res).to.deep.equal(myMockResponse); done(); }) .catch(err => { console.log("Errorr"); done(err); }); }); });¿Alguien puede ayudarme a identificar el problema cuando traté de ejecutar el caso de prueba? Recibo el siguiente error.
Error: Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.Sé que extender el tiempo de espera no es una solución para solucionar el problema. Se crea el resguardo, pero no estoy seguro de por qué está recibiendo un error de tiempo de espera cuando el código llega a esperar a Promise.all. Si elimino done (), el caso de prueba tendrá éxito, pero la función no se ejecutará. Cualquier ayuda sería realmente apreciada.
Cuando ejecutamos Mocha desde la línea de comandos, leerá este archivo que tiene un tiempo de espera predeterminado.
Para cambiar este tiempo, puede restablecer usando:
./node_modules/.bin/mocha --timeout 20000