Заглушка window.location.href с Sinon

Я пытаюсь протестировать некоторый код на стороне клиента и для этого мне нужно заглушить значениеwindow.location.href собственность с помощью мокко / синон.

Что я уже пробовал (используя этот пример):

describe('Logger', () => {
    it('should compose a Log', () => {
        var stub = sinon.stub(window.location, 'href', 'http://www.foo.com');
    });
});

Бегун отображает следующую ошибку:

TypeError: пользовательская заглушка должна быть функцией или дескриптором свойства

Изменение кода теста на:

describe('Logger', () => {
    it('should compose a Log', () => {
        var stub = sinon.stub(window.location, 'href', {
            value: 'foo'
        });
    });
});

Что приводит к этой ошибке:

TypeError: Попытка обернуть свойство строки href как функцию

Передача функции в качестве третьего аргументаsinon.stub тоже не работает

Есть ли способ предоставить подделкуwindow.location.href строка, также избегая перенаправления (так как я тестирую в браузере)?

Ответы на вопрос(3)

Ваш ответ на вопрос