Initial setup of project dependencies including axios, express, dotenv, and other supporting packages. Added configuration files and documentation for project setup and usage.
51 lines
1.7 KiB
JavaScript
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();
|
|
});
|