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

157
Vistas
broma: expect.arrayContaining with order

¿Cómo hacer coincidir llamadas con una matriz con orden?

Por ejemplo, lo he intentado, pero fallé porque ignora el pedido:

 expect(fn()).toBeCalledWith(expect.arrayContaining([1,2,3]))

Mi objetivo es tener éxito cuando llamo con [1,2,3] [1,2,3,4] [1,10,2,7,8,9,3] pero no [3,2,1] El código anterior Dame pase cuando me llamen con [3,2,1] , ¿cómo puedo lograr este objetivo?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Este final se puede hacer con expect.extend , que puedo crear mi comparador personalizado. https://jestjs.io/docs/expect#expectextendmatchers

 expect.extend({ arrayContainingWithOrder(received, sample) { let index = 0; for (let i = 0; i < received.length; i++) { if (received[i] === sample[index]) { index++; } } const pass = index === sample.length; if (pass) { return { message: () => `expected ${received} not to be contain ${sample} with order`, pass: true, }; } else { return { message: () => `expected ${received} to be contain ${sample} with order`, pass: false, }; } }, });
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede convertir su matriz esperada y el argumento llamado en cadenas como 1,2,3 . Y luego puede usar expect.stringContaining en lugar de expect.arrayContaining . Por ejemplo

 const mockedFunction = jest.fn() expect(mockedFunction).toHaveBeenCalled() //make sure your mocked function get called const calledArray = mockedFunction.mock.calls[0][0] //get first argument which is your array const expectedArray = [1,2,3] const calledArrayString = calledArray.filter(value => expectedArray.includes(value)).join(",") //only keep contained values const expectedArrayString = expectedArray.join(",") expect(calledArrayString).toEqual(expect.stringContaining(expectedArrayString))
about 4 years ago · Juan Pablo Isaza Denunciar
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