Oidc-клиенту jest.mock () не разрешено ссылаться на любые переменные вне области видимости - PullRequest
0 голосов
/ 14 февраля 2019

Я устанавливаю тестовый класс для моей службы аутентификации, который использует oidc-client.

При попытке смоделировать функцию signinRedirect oidc-client, я получаю проблемы с подъемом, и появляется следующая ошибка,Я понимаю проблему, но не знаю, как ее решить.

The module factory of ``jest.mock()`` is not allowed to reference any out-of-scope variables. Invalid variable access: myFunc

const myFunc = jest.fn();

jest.mock('oidc-client', () => ({
    UserManager: () => ({
        signinRedirect: myFunc
    })
}));

describe('oAuth', () => {
    it('should call signin redirect when login is called', () => {
        login();

        expect(myFunc).toHaveBeenCalled();
    });
});

1 Ответ

0 голосов
/ 04 июня 2019

Попробуйте изменить имя myFunc на mock MyFunc.

Если ваши фиктивные переменные ленивы, вы можете добавить к ним префикс mock.Я взял эту информацию из небольшого раздела описания ошибки, полученного несколько минут назад:

Примечание. Это мера предосторожности для защиты от неинициализированных mock переменных.Если гарантируется, что макет требуется лениво, допускаются имена переменных с префиксом mock (без учета регистра).

...