Это не сработает, потому что Scope
экспортируется только как тип из библиотеки, а класс как значение не публикуется. Вы можете увидеть, какие значения экспортируются здесь, в индексном файле .
Я также лично рекомендовал бы против такого подхода в целом. Изменение прототипа объекта, который вы не полностью контролируете, обычно считается запахом кода, поскольку это может привести к неожиданным проблемам в будущем.
Когда я уже был на вашем месте, япошли по пути создания вспомогательных функций, которые предварительно строят nocks. Я обычно ставлю их с теми же помощниками, которые создают другие фабрики.
Для вашего кода, например, я хотел бы создать что-то вроде:
export function nockAuthForBaseService(param1: string, param2: string) {
return nock('http://some-base-server.com/')
.get('/permission')
.reply(200, { permission: param1 })
.get('/group')
.reply(200, { group: param2 });
}
Затем я могу вызвать и повторно использовать эту фабрику из различных тестов, чтобы высушить их.
Пропускаете ли вы в существующем экземпляре Nock или нет, если полностью зависит от вас. У меня никогда не было сценария, в котором перехватчики, которые я хотел зафиксировать, повторно использовались во всех сервисах, поэтому для моего кода было приятнее, чтобы помощник знал базовый URL. Просто на один кусок накладных расходов на тесты не нужно.