hatch-surf/node_modules/es-shim-unscopables/test/index.js
Riley Zhang df378d33ef
Some checks failed
CI / go (push) Waiting to run
CI / docker (push) Waiting to run
CI / lint-go (push) Waiting to run
CI / lint-docs (push) Waiting to run
CI / check-paperclip (push) Waiting to run
Deploy static site / Deploy to GitHub Pages (push) Has been cancelled
Deploy static site / Deploy via Docker to hatch.surf (push) Has been cancelled
Merge GitHub main into Gitea repo (allow unrelated histories)
Resolved conflicts by taking GitHub versions for:
- .dockerignore, .gitignore, Dockerfile, README.md, docker-compose.yml

Kept deploy.sh updated to:
- Pull from GitHub (primary source)
- Push to Gitea (push-mirror)
- Build from site/ directory (GitHub structure)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-25 05:20:46 +02:00

71 lines
1.9 KiB
JavaScript

'use strict';
var test = require('tape');
var inspect = require('object-inspect');
var v = require('es-value-fixtures');
var forEach = require('for-each');
var hasOwn = require('hasown');
var shimUnscopables = require('../');
/** @type {(a: symbol, b: symbol) => number} */
var sortSymbols = function (a, b) {
return inspect(a).localeCompare(inspect(b));
};
test('shimUnscopables', function (t) {
t.equal(typeof shimUnscopables, 'function', 'is a function');
forEach(v.nonStrings, function (notNonEmptyString) {
t['throws'](
// @ts-expect-error
function () { shimUnscopables(notNonEmptyString); },
TypeError,
inspect(notNonEmptyString) + ' is not a non-empty String'
);
});
t['throws'](
// @ts-expect-error
function () { shimUnscopables('x'); },
TypeError,
inspect('x') + ' is not on Array.prototype'
);
t.test('no symbols', { skip: typeof Symbol === 'function' }, function (st) {
st.doesNotThrow(function () { shimUnscopables('forEach'); });
st.end();
});
t.test('symbols, no unscopables', { skip: typeof Symbol !== 'function' || !!Symbol.unscopables }, function (st) {
st.deepEqual(Object.getOwnPropertySymbols(Array.prototype), [Symbol.iterator]);
shimUnscopables('forEach');
st.deepEqual(Object.getOwnPropertySymbols(Array.prototype), [Symbol.iterator]);
st.end();
});
t.test('Symbol.unscopables', { skip: typeof Symbol !== 'function' || !Symbol.unscopables }, function (st) {
st.deepEqual(
Object.getOwnPropertySymbols(Array.prototype).sort(sortSymbols),
[Symbol.iterator, Symbol.unscopables]
);
st.notOk(hasOwn(Array.prototype[Symbol.unscopables], 'forEach'), 'unscopables map lacks forEach');
shimUnscopables('forEach');
st.deepEqual(
Object.getOwnPropertySymbols(Array.prototype).sort(sortSymbols),
[Symbol.iterator, Symbol.unscopables]
);
st.equal(Array.prototype[Symbol.unscopables].forEach, true, 'unscopables map has forEach');
st.end();
});
t.end();
});