¡Hola Sinon! Gracias por proporcionar una biblioteca increíble con nuevas características interesantes agregadas a la versión preliminar. He estado usando pre para la API recién introducida (iba a escribir la extensión yo mismo y encontré el código mientras buscaba en la fuente) pero la versión .6 rompió nuestro gran conjunto de pruebas.
Qué esperabas que sucediera?
No esperaba que la aserción .deep.equals
fallara cuando se pasaba una instancia de error diferente pero "igual"
Que pasa realmente
Para cualquier subclase de Error
, deep equals
hace exactamente equals
. https://github.com/sinonjs/sinon/blob/master/lib/sinon/util/core/deep-equal.js#L54 -L56
¡Hola a todos!
De hecho, esto es algo simple de resolver y estoy dispuesto a hacer un PR por ello. Sin embargo, me gustaría sugerir un enfoque diferente además de arreglar esa cláusula if
.
En Chai
tenemos un módulo llamado deep-eql
que realiza comprobaciones profundas de igualdad. Ha sido ampliamente probado y ajustado para el rendimiento y funciona bien en el núcleo de Chai.
Al adoptar la misma biblioteca, también estaríamos trabajando en el mismo código base en el futuro para mejorarlo y hacerlo mejor para cada proyecto que lo use.
Además, todavía nos permite tener el método use
debido al argumento comparator
acepta esta biblioteca .
Si no desea adoptarlo, también está bien, pero solo pensé en sugerirlo antes de resolver este problema.
@lucasfcosta Me gusta la solución propuesta. Puede ser un poco desafiante discutir match
para convertirse en una opción de comparación ... pero parece que te gustan los desafíos;)
Me encantaría ver un PR que reduzca el tamaño del código base
Este problema se ha marcado automáticamente como obsoleto porque no ha tenido actividad reciente. Se cerrará si no se produce más actividad. Gracias por sus aportaciones.
Comentario más útil
¡Hola a todos!
De hecho, esto es algo simple de resolver y estoy dispuesto a hacer un PR por ello. Sin embargo, me gustaría sugerir un enfoque diferente además de arreglar esa cláusula
if
.En
Chai
tenemos un módulo llamadodeep-eql
que realiza comprobaciones profundas de igualdad. Ha sido ampliamente probado y ajustado para el rendimiento y funciona bien en el núcleo de Chai.Al adoptar la misma biblioteca, también estaríamos trabajando en el mismo código base en el futuro para mejorarlo y hacerlo mejor para cada proyecto que lo use.
Además, todavía nos permite tener el método
use
debido al argumentocomparator
acepta esta biblioteca .Si no desea adoptarlo, también está bien, pero solo pensé en sugerirlo antes de resolver este problema.