Files
recap/startos-registry/node_modules/dunder-proto/test/set.js
T
Keysat 574a16d9fa Save in-progress keysat integration and StartOS 0.4 work
Snapshot of the working tree before cleanup. Captures:
- Keysat licensing: server/license.js, /api/license/* endpoints in
  server/index.js, activation modal in public/index.html, embedded
  Ed25519 issuer key (assets/issuer.pub).
- StartOS 0.4 expansion: setApiKey action, version files v0.1.1
  through v0.1.15, file-models/config.json.ts, manifest updates.
- Self-hosted registry server (startos-registry/).
- Build/deploy scripts (bin/bump-version.sh, bin/deploy.sh, vendored
  yt-dlp binary), .gitignore, .deploy.env.example.
- Recent design docs (KEYSAT_INTEGRATION.md, UPGRADE-DESIGN.md) —
  retained here so they remain recoverable when removed in the
  follow-up cleanup commit.
2026-05-08 09:39:17 -05:00

51 lines
1.7 KiB
JavaScript

'use strict';
var test = require('tape');
var setDunderProto = require('../set');
test('setDunderProto', { skip: !setDunderProto }, function (t) {
if (!setDunderProto) {
throw 'should never happen; this is just for type narrowing'; // eslint-disable-line no-throw-literal
}
// @ts-expect-error
t['throws'](function () { setDunderProto(); }, TypeError, 'throws if no arguments');
// @ts-expect-error
t['throws'](function () { setDunderProto(undefined); }, TypeError, 'throws with undefined and nothing');
// @ts-expect-error
t['throws'](function () { setDunderProto(undefined, undefined); }, TypeError, 'throws with undefined and undefined');
// @ts-expect-error
t['throws'](function () { setDunderProto(null); }, TypeError, 'throws with null and undefined');
// @ts-expect-error
t['throws'](function () { setDunderProto(null, undefined); }, TypeError, 'throws with null and undefined');
/** @type {{ inherited?: boolean }} */
var obj = {};
t.ok('toString' in obj, 'object initially has toString');
setDunderProto(obj, null);
t.notOk('toString' in obj, 'object no longer has toString');
t.notOk('inherited' in obj, 'object lacks inherited property');
setDunderProto(obj, { inherited: true });
t.equal(obj.inherited, true, 'object has inherited property');
t.end();
});
test('no dunder proto', { skip: !!setDunderProto }, function (t) {
if ('__proto__' in Object.prototype) {
t['throws'](
// @ts-expect-error
function () { ({}).__proto__ = null; }, // eslint-disable-line no-proto
Error,
'throws when setting Object.prototype.__proto__'
);
} else {
t.notOk('__proto__' in Object.prototype, 'no __proto__ in Object.prototype');
}
t.end();
});