| 'use strict'; |
| |
| var test = require('tape'); |
| var debug = require('object-inspect'); |
| var forEach = require('foreach'); |
| |
| var v = require('./values'); |
| var getSymbolDescription = require('../../helpers/getSymbolDescription'); |
| |
| test('getSymbolDescription', function (t) { |
| t.test('no symbols', { skip: v.hasSymbols }, function (st) { |
| st['throws']( |
| getSymbolDescription, |
| SyntaxError, |
| 'requires Symbol support' |
| ); |
| |
| st.end(); |
| }); |
| |
| forEach(v.nonSymbolPrimitives.concat(v.objects), function (nonSymbol) { |
| t['throws']( |
| function () { getSymbolDescription(nonSymbol); }, |
| TypeError, |
| debug(nonSymbol) + ' is not a Symbol' |
| ); |
| }); |
| |
| t.test('with symbols', { skip: !v.hasSymbols }, function (st) { |
| forEach( |
| [ |
| [Symbol(), undefined], |
| [Symbol(undefined), undefined], |
| [Symbol(null), 'null'], |
| [Symbol(''), ''], |
| [Symbol.iterator, 'Symbol.iterator'], |
| [Symbol('foo'), 'foo'] |
| ], |
| function (pair) { |
| var sym = pair[0]; |
| var desc = pair[1]; |
| st.equal(getSymbolDescription(sym), desc, debug(sym) + ' yields ' + debug(desc)); |
| } |
| ); |
| |
| st.end(); |
| }); |
| |
| t.end(); |
| }); |