He estado recibiendo un error al intentar probar un nuevo método en mi servicio que devuelve un objeto que se ve así:
{ requestHeaders: [ { 'header1': '...', 'header2': '...', 'header3': '...' }, { 'header1': '...', 'header2': '...', 'header3': '...' }, { 'header1': '...', 'header2': '...', 'header3': '...' }, ] }Mi método de servicio:
const requestObject = this.otherService.getRequestObject(payload); const [request] = requestObject.headers.attribute; // This doesn't look good if(request){ // Do stuff } Cuando ejecuto npm run test
TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) 32 | ); > 33 | const [request] = requestObject.headers.attribute; | ^Mi prueba de ruptura:
it('should call sendNewRequest() ', async () => { jest .spyOn(myService, 'isExistingRequest') .mockImplementation(() => Promise.resolve(false)); jest .spyOn(myService, 'createNewRequest') .mockImplementation(); await myService.handleRequest({}); expect(myService.createNewProductionOrder).toHaveBeenCalled(); }); });Creo que mi getRequestObject no está definido porque estoy enviando un objeto vacío a mi método handleRequest y getRequestObject espera algo diferente. Ahora, tenga en cuenta que el objeto que ejemplifiqué aquí no es exactamente como el objeto original (el original es mucho más grande y tiene cientos de campos), pero es un objeto con una matriz de objetos.
¿Cómo debo abordar esto ya que quiero evitar crear manualmente un objeto de solicitud dentro de mi archivo de prueba?
Vale la pena mencionar que mi método getRequestObject se declara así en un archivo utils:
export const objectDtoTransformer = (params) => {doStuff}