diff --git a/test/issues/issue-2226.test.js b/test/issues/issue-2226.test.js new file mode 100644 index 000000000..85af9070d --- /dev/null +++ b/test/issues/issue-2226.test.js @@ -0,0 +1,22 @@ +'use strict'; + +const sinon = require('./lib/sinon'); +const referee = require('@sinonjs/referee'); + +const proto = {}; +const obj = {}; +Object.setPrototypeOf(obj, proto); +Object.defineProperty(proto, 'test', { writable: true, value: 1 }); +const ownPropertyDescriptor0 = Object.getOwnPropertyDescriptor(obj, 'test'); +console.log('obj', ownPropertyDescriptor0); + +sinon.replace(obj, 'test', 2); +const ownPropertyDescriptor1 = Object.getOwnPropertyDescriptor(obj, 'test'); +console.log('obj', ownPropertyDescriptor1); + +sinon.restore(); +let ownPropertyDescriptor2 = Object.getOwnPropertyDescriptor(obj, 'test'); +console.log('obj', ownPropertyDescriptor2); + +referee.assert.isUndefined(ownPropertyDescriptor0) +referee.assert.isUndefined(ownPropertyDescriptor2)