mockClear внутри componentDidMount - PullRequest
       6

mockClear внутри componentDidMount

0 голосов
/ 07 февраля 2019

У меня есть функция, которая вызывается внутри componentDidMount, например:

componentDidMount() {
    this.props.getTasks(123);
}

эта функция также вызывается внутри другой функции, например:

handleCloseDismissModal = () => {
    if (currentAction.currentAction.isComplete) {
        this.props.getOutstandingTasks(123);
    }
};

внутри моего тестового файла.:

    it('should call getOutstandingTasks on componentDidMount', () => {
        expect(props.getOutstandingTasks).toHaveBeenCalledWith(123);
    });

и это прекрасно работает.Когда я проверяю «handleCloseDismissModal», как показано ниже:

    it('should handle handleCloseDismissModal when task is completed', () => {

        instance.handleCloseDismissModal();
        expect(props.getOutstandingTasks).toHaveBeenCalled();
    });

, и мои реквизиты выглядят так:

const props = 
...
    currentAction: {
        currentAction: {
            isComplete: false,
            task: {}
        }
    },
...

let wrapper;
let instance;

beforeEach(() => {
    wrapper = shallow(<Identity {...props} />);
    instance = wrapper.instance();
});

Я ожидаю, что «должен обрабатывать handleCloseDismissModal, когда задача завершена», чтобысбой, потому что значение isComplete по умолчанию установлено в false.Однако это не так, потому что, когда вызывается экземпляр, так это componentDidMount, который в терминах вызывает 'getOutstandingTasks'.И я думаю, что это причина того, почему «предвидеть (props.getOutstandingTasks) .toHaveBeenCalled ()» не удается, поэтому он вызывается внутри componentDidMount.

Существует ли способ сброса функций, вызываемых внутри componentDidMount?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...