Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

131
Visualizações
Compruebe si una propiedad anidada tiene un objeto que coincide parcialmente con un objetivo esperado

Tengo un objeto como este:

 > const expect = require('chai').expect > r = { loadedElementData: { userIdRecord: { name: 'Chiara', surname: 'Fabbietti', id: 1 } }, resolvedIdParamsValues: { users: 1 }, resolvedListFilter: {}, totalLoads: 1 }

Puedo verificar si un objeto con contenido específico está en algún lugar profundo en r ; esto no arroja:

 > expect(r).to.have.nested.deep.property('loadedElementData.userIdRecord', { name: "Chiara", surname: "Fabbietti", id: 1 })

Sin embargo, quiero comprobar si hay objetos parciales . Por lo tanto, me gustaría que pasara algo como esto aunque el objeto de comparación sea una coincidencia parcial:

 > expect(r).to.have.nested.deep.property('loadedElementData.userIdRecord', { id: 1, name: 'Chiara' })

Obviamente, esto no funcionará, ya que verificará la igualdad profunda del objeto.

Esto en teoría debería funcionar:

 expect(r).to.nested.include({'loadedElementData.userIdRecord': { id: 1, name: 'Chiara' } })

Pero no. Esto REALMENTE debería funcionar:

 expect(r).to.deep.nested.include({ 'loadedElementData.userIdRecord': { id: 1, name: 'Chiara' } })

Pero no.

Puedo hacer que funcione comprobando UNA propiedad (solo 'id'):

 expect(r).to.nested.include({ 'loadedElementData.userIdRecord.id': 1})

Pero estoy limitado a verificar la id y no puedo verificar el name también al mismo tiempo.

Puedo hacer esto en 2 pasos:

 > expect(r).to.include.nested.property('loadedElementData.userIdRecord') > expect(r.loadedElementData.userIdRecord).to.include({ id: 1 })

Pero este es un proceso de dos pasos, ¿puedo hacerlo en un solo paso?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Si verifica sus problemas de Github, los mantenedores reconocen que la inclusión anidada de un subconjunto de objetos no funciona desde 2020. Referencia: chai Github

Esta es la línea donde Chai decide si hace una igualdad profunda o estricta al comparar dos objetos: https://github.com/chaijs/chai/blob/a8359d3d15779a23a7957a4c52539d48de2763e0/lib/chai/core/assertions.js#L1892 .
_.eql es una referencia a la implementación de la biblioteca propia de igualdad profunda de Chai.

En la librería deep-eql el flujo llegará a esta función que hace comparaciones de igualdad sueltas pero no parciales.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda