Merge branch 'patch-1' of https://github.com/suke/jasmine
* Merges #1963 from @suke * Excludes non-enumerable symbol properties from equality comparison
This commit is contained in:
@@ -5577,8 +5577,15 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
keys.push(key);
|
||||
}
|
||||
}
|
||||
// eslint-disable-next-line compat/compat
|
||||
return keys.concat(Object.getOwnPropertySymbols(o));
|
||||
|
||||
var symbols = Object.getOwnPropertySymbols(o);
|
||||
for (var i = 0; i < symbols.length; i++) {
|
||||
if (o.propertyIsEnumerable(symbols[i])) {
|
||||
keys.push(symbols[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return keys;
|
||||
})(obj);
|
||||
|
||||
if (!isArray) {
|
||||
|
||||
@@ -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 = {};
|
||||
|
||||
@@ -532,8 +532,15 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
||||
keys.push(key);
|
||||
}
|
||||
}
|
||||
// eslint-disable-next-line compat/compat
|
||||
return keys.concat(Object.getOwnPropertySymbols(o));
|
||||
|
||||
var symbols = Object.getOwnPropertySymbols(o);
|
||||
for (var i = 0; i < symbols.length; i++) {
|
||||
if (o.propertyIsEnumerable(symbols[i])) {
|
||||
keys.push(symbols[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return keys;
|
||||
})(obj);
|
||||
|
||||
if (!isArray) {
|
||||
|
||||
Reference in New Issue
Block a user