Skip to content

Commit 4ec8893

Browse files
committed
[Tests] use mock-property
1 parent b05244b commit 4ec8893

File tree

3 files changed

+10
-28
lines changed

3 files changed

+10
-28
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"functions-have-names": "^1.2.2",
1717
"has-tostringtag": "^1.0.0",
1818
"make-arrow-function": "^1.2.0",
19+
"mock-property": "^1.0.0",
1920
"nyc": "^10.3.2",
2021
"safe-publish-latest": "^2.0.0",
2122
"string.prototype.repeat": "^1.0.0",

test/has.js

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,15 @@
1+
'use strict';
2+
13
var inspect = require('../');
24
var test = require('tape');
3-
4-
function withoutProperty(object, property, fn) {
5-
var original;
6-
if (Object.getOwnPropertyDescriptor) {
7-
original = Object.getOwnPropertyDescriptor(object, property);
8-
} else {
9-
original = object[property];
10-
}
11-
delete object[property];
12-
try {
13-
fn();
14-
} finally {
15-
if (Object.getOwnPropertyDescriptor) {
16-
Object.defineProperty(object, property, original);
17-
} else {
18-
object[property] = original;
19-
}
20-
}
21-
}
5+
var mockProperty = require('mock-property');
226

237
test('when Object#hasOwnProperty is deleted', function (t) {
248
t.plan(1);
259
var arr = [1, , 3]; // eslint-disable-line no-sparse-arrays
2610

27-
// eslint-disable-next-line no-extend-native
28-
Array.prototype[1] = 2; // this is needed to account for "in" vs "hasOwnProperty"
11+
t.teardown(mockProperty(Array.prototype, 1, { value: 2 })); // this is needed to account for "in" vs "hasOwnProperty"
12+
t.teardown(mockProperty(Object.prototype, 'hasOwnProperty', { 'delete': true }));
2913

30-
withoutProperty(Object.prototype, 'hasOwnProperty', function () {
31-
t.equal(inspect(arr), '[ 1, , 3 ]');
32-
});
33-
delete Array.prototype[1];
14+
t.equal(inspect(arr), '[ 1, , 3 ]');
3415
});

test/values.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
var inspect = require('../');
44
var test = require('tape');
5+
var mockProperty = require('mock-property');
56
var hasSymbols = require('has-symbols/shams')();
67
var hasToStringTag = require('has-tostringtag/shams')();
78

@@ -23,10 +24,9 @@ test('arrays with properties', function (t) {
2324

2425
test('has', function (t) {
2526
t.plan(1);
26-
var has = Object.prototype.hasOwnProperty;
27-
delete Object.prototype.hasOwnProperty;
27+
t.teardown(mockProperty(Object.prototype, 'hasOwnProperty', { 'delete': true }));
28+
2829
t.equal(inspect({ a: 1, b: 2 }), '{ a: 1, b: 2 }');
29-
Object.prototype.hasOwnProperty = has; // eslint-disable-line no-extend-native
3030
});
3131

3232
test('indexOf seen', function (t) {

0 commit comments

Comments
 (0)