¿Cómo usar jest para afirmar que los objetos en estas dos matrices tienen la misma identificación?
const array1 = [{id:1,name:'a'},{id:2,name:'b'}] const array2 = [{id:1},{id:2,name:'b'}]por ahora, estoy usando un método como este, creo que no es bueno.
expect(_.map(array1, 'id')).toEqual(_.map(array2, 'id'));¿Has probado objectContaining con toContain?
Algo como:
array1 .forEach( ({ id }) => expect(array2).toContain(expect.objectContaining({ id }), );y tal vez:
expect(array1).toHaveLength(array2.length);La verbosidad de la muestra a continuación aumenta la legibilidad. Y te salva de usar lodash. Utiliza arrayContaining y objectContaining de Jest.
test('states right thing', () => { const array1 = [{id:1,name:'a'},{id:2,name:'b'}] const array2 = [{id:1},{id:2,name:'b'}] array2.forEach(object => { // 1 expect(array1).toEqual( // 2 expect.arrayContaining([ // 3 expect.objectContaining({ // 4 id: object.id // 5 }) ]) ) }); });Lo anterior se lee como:
Fue inspirado por esta publicación de blog mediana . Puedes pegarlo y probarlo en jest playground .