diff --git a/test/test.js b/test/test.js index 28d42d221..f533718fe 100644 --- a/test/test.js +++ b/test/test.js @@ -10066,6 +10066,61 @@ /*--------------------------------------------------------------------------*/ + QUnit.module('lodash.isSymbol'); + + (function() { + var args = arguments; + + QUnit.test('should return `true` for symbols', function(assert) { + assert.expect(2); + + if (Symbol) { + assert.strictEqual(_.isSymbol(symbol), true); + assert.strictEqual(_.isSymbol(Object(symbol)), true); + } + else { + skipTest(assert, 2); + } + }); + + QUnit.test('should return `false` for non-symbols', function(assert) { + assert.expect(12); + + var expected = lodashStable.map(falsey, lodashStable.constant(false)); + + var actual = lodashStable.map(falsey, function(value, index) { + return index ? _.isSymbol(value) : _.isSymbol(); + }); + + assert.deepEqual(actual, expected); + + assert.strictEqual(_.isSymbol(args), false); + assert.strictEqual(_.isSymbol([1, 2, 3]), false); + assert.strictEqual(_.isSymbol(true), false); + assert.strictEqual(_.isSymbol(new Date), false); + assert.strictEqual(_.isSymbol(new Error), false); + assert.strictEqual(_.isSymbol(_), false); + assert.strictEqual(_.isSymbol(slice), false); + assert.strictEqual(_.isSymbol({ '0': 1, 'length': 1 }), false); + assert.strictEqual(_.isSymbol(1), false); + assert.strictEqual(_.isSymbol(/x/), false); + assert.strictEqual(_.isSymbol('a'), false); + }); + + QUnit.test('should work with symbols from another realm', function(assert) { + assert.expect(1); + + if (Symbol && realm.symbol) { + assert.strictEqual(_.isSymbol(realm.symbol), true); + } + else { + skipTest(assert); + } + }); + }(1, 2, 3)); + + /*--------------------------------------------------------------------------*/ + QUnit.module('lodash.isTypedArray'); (function() {