tengo este objeto
obj1 = { a: 1, b: 2, c: 3 // or null, } obj2 = { a: 1, b: 2, c: null // or 3 }¿Cómo puedo afirmar una igualdad profunda en estos objetos?
expect(obj1).to.deep.eql(obj2);Sé que lo anterior no funciona como yo quiero.
Necesito una condición or aquí que se ocupe de null o de cualquier parte number .
Podría hacer algo como a continuación.
expect(obj1.c).to.be.within([3, null]) delete obj1.c delete obj2.c expect(obj1).to.deep.eql(obj2)Puede usar los operadores lógicos AND/OR del complemento chai-json-pattern .
const chai = require('chai'); const chaiJsonPattern = require('chai-json-pattern').default; chai.use(chaiJsonPattern); const { expect } = chai; describe('69158740', () => { it('should pass', () => { const obj1 = { a: 1, b: 2, c: 3 }; const obj2 = { a: 1, b: 2, c: null }; expect(obj1).to.matchPattern(`{ "a": 1, "b": 2, "c": null OR 3 }`); expect(obj2).to.matchPattern(`{ "a": 1, "b": 2, "c": null OR 3 }`); }); });versiones del paquete:
"chai-json-pattern": "^1.1.0", "chai": "^4.2.0"