Как проверить функцию, которая вызывает API с Jest и Redx Saga - PullRequest
0 голосов
/ 06 марта 2019

Мне нужно проверить саксофон с шуткой.Но это не работает.Вот что я пробовал

service.js

class Login {
    login = async (user: any) => {
        try {
            const response = await axios({
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                },
                url: `${API.BASE_URL}signIn`,
                data: JSON.stringify({
                    LoginID: user.LoginID,
                    Password: user.Password,
                }),
            });
            return Bluebird.resolve(response.data);
        } catch (err) {
            return Bluebird.reject(err);
        }
    }
}

export default new Login();

worker.js

export function* loginWorker(action) {
    try {
        const response = yield call(service.login, action.payload);
        if (response.Success) {
            yield put({type: actionTypes.LOGIN_SUCCESS_ACTION, response});
        } else {
            toastr.showToast(response.Message);
            yield put({type: 'LOGIN_FAILURE', response});
        }
    } catch (err) {
        // dispatch a failure action to the store with the error
        yield put({type: 'LOGIN_FAILURE', err});
        toastr.showToast(err);
    }
}

test.js

describe('test login', () => {
    const action = {
        type: actionTypes.LOGIN_ACTION,
        payload: user,
    };
    it('login', () => {
        const gen = loginWorker(action);
        expect(gen.next().value).toEqual(call(service.login, action.payload));
        expect(gen.next().value).toEqual(put({type: actionTypes.LOGIN_SUCCESS_ACTION, response}));
    });
});

Но эта функцияservice.login не вызывается, и я получаю эту ошибку

Cannot read property 'Success' of undefined

Где моя ошибка?Пожалуйста, помогите

...