mirror of https://github.com/nodejs/node.git
assert: inspect getters
While asserting two objects the descriptor is not taken into account. Therefore getters will be triggered as such. This makes sure they are also highlighted in the error message instead of potentially looking identical while the return value of the getter is actually different. PR-URL: https://github.com/nodejs/node/pull/25004 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>pull/25107/head
parent
0858e5d9d8
commit
3b2698e41f
|
@ -56,7 +56,9 @@ function inspectValue(val) {
|
|||
breakLength: Infinity,
|
||||
// Assert does not detect proxies currently.
|
||||
showProxy: false,
|
||||
sorted: true
|
||||
sorted: true,
|
||||
// Inspect getters as we also check them when comparing entries.
|
||||
getters: true
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
@ -24,7 +24,8 @@ function re(literals, ...values) {
|
|||
customInspect: false,
|
||||
maxArrayLength: Infinity,
|
||||
breakLength: Infinity,
|
||||
sorted: true
|
||||
sorted: true,
|
||||
getters: true
|
||||
});
|
||||
// Need to escape special characters.
|
||||
result += str;
|
||||
|
@ -1049,3 +1050,24 @@ assert.throws(
|
|||
});
|
||||
assertDeepAndStrictEqual(a, b);
|
||||
}
|
||||
|
||||
// Check getters.
|
||||
{
|
||||
const a = {
|
||||
get a() { return 5; }
|
||||
};
|
||||
const b = {
|
||||
get a() { return 6; }
|
||||
};
|
||||
assert.throws(
|
||||
() => assert.deepStrictEqual(a, b),
|
||||
{
|
||||
code: 'ERR_ASSERTION',
|
||||
name: 'AssertionError [ERR_ASSERTION]',
|
||||
message: /a: \[Getter: 5]\n- a: \[Getter: 6]\n /
|
||||
}
|
||||
);
|
||||
|
||||
// The descriptor is not compared.
|
||||
assertDeepAndStrictEqual(a, { a: 5 });
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue