* Merges #1963 from @suke
* Excludes non-enumerable symbol properties from equality comparison
This commit is contained in:
Steve Gravrock
2022-05-09 16:51:47 -07:00
3 changed files with 41 additions and 4 deletions

View File

@@ -1067,6 +1067,29 @@ describe('toEqual', function() {
// == Symbols ==
describe('Symbols', function() {
it('Enumerable symbols are compared', function() {
const sym = Symbol('foo');
const actual = {};
Object.defineProperty(actual, sym, {
value: '',
enumerable: true
});
const expected = { [sym]: '' };
expect(actual).toEqual(expected);
});
it('Symbols that cannot be enumerated are not compared ', function() {
const sym = Symbol('foo');
const actual = {};
Object.defineProperty(actual, sym, {
value: '',
enumerable: false
});
const expected = {};
expect(actual).toEqual(expected);
});
it('Fails if Symbol compared to Object', function() {
const sym = Symbol('foo');
const obj = {};