Получатель заглушки SinonJS определен с настраиваемым значением false - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь заглушить nodeJS auth0 lib ManagementClient.prototype.createUser, используя SinonJS.

Проблема в том, что createUser является геттером, определенным с Object.defineProperty с использованием configurable: false, следовательно, с использованием sinon.replaceGetter() или sinon.stub(object, 'method').get(fn) throws Cannot redeclare property.Я открыл вопрос об этом в репозитории Github, и кто-то сказал мне, что sinon.stub(ManagementClient.prototype, 'createUser', fn) работает, но проблема в том, что этот синтаксис устарел с v3.0.0.Я попытался использовать sinon.stub(ManagementClient.prototype, 'createUser').callsFake(fn), который должен заменить старый синтаксис, но он не работает, как казалось предыдущим.Вот runkit , показывающий это в действии.

Мой вопрос: есть ли способ для меня заглушить этот геттер, даже если он объявлен как configurable: false или я ввернут?Я не могу найти способ.

Я уже спросил их, будут ли они обновлять свой Object.defineProperty вызов, чтобы установить configurable: true, но безрезультатно.

1 Ответ

0 голосов
/ 26 сентября 2018

Кажется невозможным переопределить свойство, определенное с помощью configuration: false, поэтому я закончил делать свою собственную обертку вокруг Auth0 SDK и вставил ее вместо самого SDK.

...