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

108
Vistas
Afirmar la igualdad de ObjectId en casos de prueba

Tengo un caso de prueba que quiere afirmar que el documento mangosta devuelto por el método bajo prueba es el mismo que ya tengo. Para verificar que sean iguales, mi intención es simplemente verificar que tengan la misma propiedad _id .

 const expected = MyModel.find(/*...*/); const actual = await foo(); // method under test expect(actual._id).to.deep.equal(expected._id)

Sin embargo, descubrí que la verificación deep.equal pasa incluso cuando los _id de los documentos no son los mismos .

Reproduje el problema en este pequeño ejemplo:

 import { expect } from 'chai'; import { Types } from 'mongoose'; const a = new Types.ObjectId(); const b = new Types.ObjectId(); expect(a).to.deep.equal(b); // unexpectedly passes

He verificado que puedo solucionar el problema comparando la representación de cadena de cada ObjectId en su lugar:

 expect(a.toString()).equals(b.toString()); // fails (as expected)

¿Por qué chai afirma incorrectamente que los dos ObjectId, que son instancias de objetos diferentes con valores diferentes, son profundamente iguales en el ejemplo original?

about 4 years ago · Juan Pablo Isaza
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