Así que tengo una función que es una promesa y devuelve una matriz (ya sea vacía o llena dependiendo de cómo regresen los datos) valores y está obteniendo los valores simulados, pero solo se está agotando el tiempo antes de que se resuelva?
it('works correctly when audience assigned', () => { fetchEssentialComplianceData( { includeAudienceAssigned: true }, { id: 'userId' } ); getAssignedLearning.mock.calls[0][1]([], { getUserAssignments: { results: [ { content: { contentType: 'contentType', isOfficial: true, title: 'content title', }, contentId: 'content id', dueDate: 'due date', }, ], }, }); expect(getAssignedLearning).toHaveBeenCalledTimes(1); expect(getAssignedLearning).toHaveBeenCalledWith( { input: { userId: 'userId', pageNumber: 0, returnCount: 12, sort: [ { type: 'dueDate', order: 'desc', }, { type: 'dateCreated', order: 'desc', }, ], }, }, expect.any(Function) ); //TODO always times out before resolving? return expect( fetchEssentialComplianceData( { includeAudienceAssigned: true }, { id: 'userId' } ) ).resolves.toBe([]); });Probé diferentes formas de escribirlo, haciéndolo su propia función, probé
Lo escribí así que pasó, pero fue un pase falso.
const result = fetchEssentialComplianceData( { includeAudienceAssigned: true }, { id: 'userId' } ) expect(result).resolves.toBe(['123'])También tengo la misma función probada pero sin retorno de datos (nunca se envía la solicitud) y esto funciona correctamente, lo he probado con diferentes valores para asegurarme y es correcto.
it('works correctly when not audience assigned', () => { fetchEssentialComplianceData( { includeAudienceAssigned: false }, { id: 'userId' } ); expect(getAssignedLearning).toHaveBeenCalledTimes(0); return expect( fetchEssentialComplianceData({ includeAudienceAssigned: false }) ).resolves.toStrictEqual([]); });Estoy realmente perplejo ahora, hice clic en todos los enlaces que pude encontrar con Google y no pude encontrar nada que funcionara.