summaryrefslogtreecommitdiff
path: root/src/node_modules/es-abstract/test/helpers/getSymbolDescription.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2021-12-21 16:52:28 +0100
committerMinteck <contact@minteck.org>2021-12-21 16:52:28 +0100
commit46e43f4bde4a35785b4997b81e86cd19f046b69b (patch)
treec53c2f826f777f9d6b2d249dab556feb72a6c3a6 /src/node_modules/es-abstract/test/helpers/getSymbolDescription.js
downloadlangdetect-46e43f4bde4a35785b4997b81e86cd19f046b69b.tar.gz
langdetect-46e43f4bde4a35785b4997b81e86cd19f046b69b.tar.bz2
langdetect-46e43f4bde4a35785b4997b81e86cd19f046b69b.zip
Commit
Diffstat (limited to 'src/node_modules/es-abstract/test/helpers/getSymbolDescription.js')
-rw-r--r--src/node_modules/es-abstract/test/helpers/getSymbolDescription.js67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/node_modules/es-abstract/test/helpers/getSymbolDescription.js b/src/node_modules/es-abstract/test/helpers/getSymbolDescription.js
new file mode 100644
index 0000000..fbe7a7b
--- /dev/null
+++ b/src/node_modules/es-abstract/test/helpers/getSymbolDescription.js
@@ -0,0 +1,67 @@
+'use strict';
+
+var test = require('tape');
+var debug = require('object-inspect');
+var forEach = require('foreach');
+var has = require('has');
+
+var v = require('./values');
+var getSymbolDescription = require('../../helpers/getSymbolDescription');
+var getInferredName = require('../../helpers/getInferredName');
+
+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); },
+ v.hasSymbols ? TypeError : SyntaxError,
+ 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.iterator, 'Symbol.iterator'],
+ [Symbol('foo'), 'foo']
+ ],
+ function (pair) {
+ var sym = pair[0];
+ var desc = pair[1];
+ st.equal(getSymbolDescription(sym), desc, debug(sym) + ' description is ' + debug(desc));
+ }
+ );
+
+ st.test('only possible when inference or native `Symbol.prototype.description` is supported', {
+ skip: !getInferredName && !has(Symbol.prototype, 'description')
+ }, function (s2t) {
+ s2t.equal(getSymbolDescription(Symbol('')), '', 'Symbol("") description is ""');
+
+ s2t.end();
+ });
+
+ st.test('only possible when global symbols are supported', {
+ skip: !has(Symbol, 'for') || !has(Symbol, 'keyFor')
+ }, function (s2t) {
+ // eslint-disable-next-line no-restricted-properties
+ s2t.equal(getSymbolDescription(Symbol['for']('')), '', 'Symbol.for("") description is ""');
+ s2t.end();
+ });
+
+ st.end();
+ });
+
+ t.end();
+});