Estoy tratando de escribir una prueba para ver que el resultado devuelto por una función que estoy probando es uno de los resultados correctos.
El resultado es una matriz de objetos, por ejemplo [{ op: 'replace', path: '', value: { 0: 1 } }]
Quiero ver si este resultado es una de las respuestas correctas, la prueba debería pasar.
Intenté cambiar una de las pruebas como se menciona aquí , pero parece que no puedo hacer que funcione.
Aquí hay un fragmento de código:
test(`For arrays, if data gets added, replace operation is sent`, () => { const data = [] const update = [1] const result = functionToTest(data, update) const correct = [{ op: 'replace', path: '', value: { 0: 1 } }] const correct2 = [{ op: 'replace', path: '', value: [1] }] //the result should include one of there answers. So if correct or correct 2 //matches, it should pass. //here I add all the correct answers to an array, to its essensially an //array of arrays // [ // [{ op: 'replace', path: '', value: { 0: 1 } }], // [{ op: 'replace', path: '', value: [1] }] // ]` const correctResults = [correct, correct2] //the result of the function should be contained in one of the correct results expect(result).toEqual( expect.arrayContaining(correctResults) ) })Escribiré un código sandbox o algo para probarlo en el navegador. Aquí está el repositorio por ahora: https://github.com/jpbnetley/test-json-patch/tree/bugfix/update-tests
He descubierto que esto parece solucionar el problema.
test(`For arrays, if data gets added, replace operation is sent`, () => { const data = [] const update = [1] const result = functionToTest(data, update) const correct = [{ op: 'replace', path: '', value: { 0: 1 } }] const correct2 = [{ op: 'replace', path: '', value: [1] }] const correctResults = {...correct, ...correct2} expect(result).toEqual( expect.objectContaining(correctResults) ) })