Я хочу выполнить тест глубокого равенства с использованием библиотеки chai
, но только с ограниченной глубиной. Например:
const a = {
foo: {
bar: {
baz: "qux"
}
}
}
const b = {
foo: { // compared deeply
bar: { // compared by identity (===)
baz: "qux"
}
}
}
// this passes, since 'a' and 'b' are structurally equal
expect(a).to.deep.equal(b);
// this would fail, since the 'bar' object would be compared by identity
expect(a).to.deep.depth(1).equal(b);
В моем реальном сценарии объект bar
, конечно, будет намного сложнее. Сравнение их по идентичности более чем достаточно, и глубокое равенство даже сталкивается с проблемами из-за циклических ссылок.
Есть ли встроенная функция или плагин, обеспечивающий эту функциональность? Я нашел chai-shallow-deep-equal , у которого есть многообещающее имя, но, к сожалению, оно не выглядит так, как оно соответствует моим потребностям.