deep-get-set
Version:
Set and get values on objects via dot-notation strings.
33 lines (24 loc) • 714 B
JavaScript
var test = require('tape');
var deep = require('./index.cjs');
test('deep sets, strict', function (t) {
var obj = {};
t.throws(function () {
deep(obj, 'yep.nope', 'p');
});
deep.p = true;
deep(obj, 'yep.nope', 'p');
t.equal(obj.yep.nope, 'p');
t.end();
});
test.skip('no prototype pollution', function (t) {
const obj = {};
deep(obj, ['__proto__', 'a'], 1);
deep(obj, [['__proto__'], 'b'], 2);
deep(obj, 'constructor.prototype.c', 3);
t.equal(globalThis.a, undefined);
t.equal(globalThis.b, undefined);
t.equal(globalThis.c, undefined);
t.equal(deep(obj, '__proto__.toString'), undefined);
t.equal(deep(obj, 'constructor.prototype.toString'), undefined);
t.end();
});