Skip to content

Commit 00f8433

Browse files
committed
fix: deep symbol comparison
1 parent 3b39bf3 commit 00f8433

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

test/index.js

+42
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,48 @@ describe('Generic', function () {
377377

378378
});
379379

380+
describe.only('Symbols', function () {
381+
382+
it('returns true for same symbols', function () {
383+
var symb = Symbol('a');
384+
var objectA = { [symb]: 'a' };
385+
var objectB = { [symb]: 'a' };
386+
assert(eql(objectA, objectB) === true, 'eql(obj, obj)');
387+
});
388+
389+
it('returns false for different values', function () {
390+
var symb = Symbol('a');
391+
var objectA = { [symb]: 'a' };
392+
var objectB = { [symb]: 'b' };
393+
assert(eql(objectA, objectB) === false, 'eql(obj, obj) === false');
394+
});
395+
396+
it('returns false for different symbols', function () {
397+
var symb = Symbol('a');
398+
var symb2 = Symbol('b');
399+
var objectA = { [symb]: 'a' };
400+
var objectB = { [symb2]: 'a' };
401+
assert(eql(objectA, objectB) === false, 'eql(obj, obj) === false');
402+
});
403+
404+
it('returns true for same nested symbols', function () {
405+
var symb = Symbol('a');
406+
var symb2 = Symbol('b');
407+
var objectA = { [symb]: { [symb2]: 'a' } };
408+
var objectB = { [symb]: { [symb2]: 'a' } };
409+
assert(eql(objectA, objectB) === true, 'eql(obj, obj)');
410+
});
411+
412+
it('returns false for different nested symbols', function () {
413+
var symb = Symbol('a');
414+
var symb2 = Symbol('b');
415+
var objectA = { [symb]: { [symb2]: 'a' } };
416+
var objectB = { [symb]: { [symb]: 'a' } };
417+
assert(eql(objectA, objectB) === false, 'eql(obj, obj) === false');
418+
});
419+
});
420+
421+
380422
describe('errors', function () {
381423

382424
it('returns true for same errors', function () {

0 commit comments

Comments
 (0)