Add bizarro _.create test.

This commit is contained in:
John-David Dalton
2016-10-05 16:11:10 -07:00
parent 6e8c0de1ff
commit 1665e5cbff
2 changed files with 16 additions and 8 deletions

View File

@@ -85,9 +85,9 @@
setProperty(Object, '_create', Object.create);
setProperty(Object, 'create', (function() {
function object() {}
return function(prototype) {
if (prototype === Object(prototype)) {
object.prototype = prototype;
return function(proto) {
if (proto === Object(proto)) {
object.prototype = proto;
var result = new object;
object.prototype = undefined;
}

View File

@@ -520,9 +520,9 @@
// Set bad shims.
setProperty(Object, 'create', (function() {
function object() {}
return function(prototype) {
if (lodashStable.isObject(prototype)) {
object.prototype = prototype;
return function(proto) {
if (lodashStable.isObject(proto)) {
object.prototype = proto;
var result = new object;
object.prototype = undefined;
}
@@ -823,7 +823,7 @@
});
QUnit.test('should avoid non-native built-ins', function(assert) {
assert.expect(7);
assert.expect(8);
function message(lodashMethod, nativeMethod) {
return '`' + lodashMethod + '` should avoid overwritten native `' + nativeMethod + '`';
@@ -855,6 +855,14 @@
var label = message('_.isEmpty', 'Object#propertyIsEnumerable');
assert.strictEqual(actual, true, label);
try {
actual = lodashBizarro.create(Foo.prototype);
} catch (e) {
actual = null;
}
label = message('_.create', 'Object.create');
assert.ok(actual instanceof Foo, label);
try {
actual = [
lodashBizarro.difference([object, otherObject], largeArray),
@@ -920,7 +928,7 @@
assert.deepEqual(actual, [], label);
}
else {
skipAssert(assert, 7);
skipAssert(assert, 8);
}
});
}());