Soy totalmente nuevo en Chai, y esto probablemente sea muy simple, pero no puedo encontrar ninguna referencia a mi caso en los documentos oficiales. Estoy tratando de verificar que una matriz con dos objetos tenga un valor de propiedad que coincida exactamente con los valores de otra matriz.
Considera lo siguiente:
test('Array includes ids', function() { const array1 = [ { type: 'type1', id: '1' }, { type: 'type2', id: '2' }, ] const array2 = ['1', '2'] chai.expect(array1).to.have.deep.members(array2) // fails }) Me gustaría verificar que los objetos en array1 tengan una propiedad de id con uno de los valores que se encuentran en array2 . Sé que podría mapear array1 como array1.map(p => p.id) y compararlo con array2 , pero eso parece ir en contra de las pruebas como práctica. Después de todo, no quiero manipular demasiado mi objetivo para que se ajuste a mi nivel actual de conocimiento.
¿Hay una mejor manera de probar esto? (No hace falta decir que mi código de ejemplo anterior no funciona como se desea).
Simplemente transforme su array1 con el método .map() para tener su tipo de matriz con solo ids como array2 ,
test('Array includes ids', function() { const array1 = [ { type: 'type1', id: '1' }, { type: 'type2', id: '2' }, ] const arr1 = array1.map(e=>e.id);//transform with .map() -> ['1', '2'] const array2 = ['1', '2'] chai.expect(arr1).to.have.deep.members(array2) // pass })