Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

180
Views
Broma: problema con la aserción asíncrona y si se llamó a una función

Estoy tratando de afirmar que se llama a una función. Desafortunadamente, está pasando inesperadamente; en realidad, todas las afirmaciones lo están. Creo que se están acabando las pruebas antes de que todo se resuelva.

código .js

 export function callapi(input, setOptions, setSuggestStatus) { if (input !== '') { axios .post( requestURl, { input: `${input}`, headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, }, { credentials: 'include', headers: { 'X-CSRF-Token': document && document.getElementsByTagName('body')[0].dataset.token, }, }, ) .then(response => { if (response.data.status === 'OK') { const optionslist = response.data.suggestions.map(item => { return { key: item.id}; }); // I need to assert that this function was called with options list setOptions(optionslist); } }) .catch(e => { console.log(e); }) } }

código de prueba

 import axios from 'axios'; describe('callapi tests', () => { it('should call setOptions with options when callapi is called', () => { const updateFetchedData = jest.fn(); const response = { data: { status: 'OK', suggestions: [{"id":1},{"id":2}] } } const setOptions = jest.fn(); const expectedOptionsList = [ { key: 1, }, { key: 2, } ]; axios.post = jest.fn(() => { return new Promise((resolve) => { resolve(response); // this should pass expect(setOptions).toHaveBeenCalledWith(expectedOptionsList) // this shouldn't pass but is expect(1).toBe(2); }) }) const setSuggestStatus = jest.fn(); callGoogleAutoCompleteSearch('input', setOptions, setSuggestStatus); }); });

En este momento todas las pruebas pasan - obviamente expect(1).toBe(2); no debe pasar Así que todas las pruebas están pasando incluso si no deberían. Creo que este es un problema asíncrono. Cualquier ayuda apreciada.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!