mirror of
https://github.com/hanzoai/core-js.git
synced 2026-09-24 16:58:15 +00:00
33 lines
1.5 KiB
JavaScript
33 lines
1.5 KiB
JavaScript
/* eslint-disable symbol-description -- required for testing */
|
|
import { DESCRIPTORS } from '../helpers/constants.js';
|
|
|
|
QUnit.test('Symbol#description', assert => {
|
|
assert.same(Symbol('foo').description, 'foo');
|
|
assert.same(Symbol('').description, '');
|
|
assert.same(Symbol(')').description, ')');
|
|
assert.same(Symbol({}).description, '[object Object]');
|
|
assert.same(Symbol(null).description, 'null');
|
|
assert.same(Symbol(undefined).description, undefined);
|
|
assert.same(Symbol().description, undefined);
|
|
assert.same(Object(Symbol('foo')).description, 'foo');
|
|
assert.same(Object(Symbol()).description, undefined);
|
|
if (DESCRIPTORS) {
|
|
assert.false(Object.hasOwn(Symbol('foo'), 'description'));
|
|
const descriptor = Object.getOwnPropertyDescriptor(Symbol.prototype, 'description');
|
|
assert.false(descriptor.enumerable);
|
|
assert.true(descriptor.configurable);
|
|
assert.same(typeof descriptor.get, 'function');
|
|
}
|
|
if (typeof Symbol() == 'symbol') {
|
|
assert.same(Symbol('foo').toString(), 'Symbol(foo)');
|
|
assert.same(String(Symbol('foo')), 'Symbol(foo)');
|
|
assert.same(Symbol('').toString(), 'Symbol()');
|
|
assert.same(String(Symbol('')), 'Symbol()');
|
|
assert.same(Symbol().toString(), 'Symbol()');
|
|
assert.same(String(Symbol()), 'Symbol()');
|
|
}
|
|
// Symbol.for with empty string key should have '' description
|
|
assert.same(Symbol.for('').description, '', 'Symbol.for("").description');
|
|
assert.same(Symbol.for('foo').description, 'foo', 'Symbol.for("foo").description');
|
|
});
|