Как написать тестовые случаи для вложенных саг, в которые экспортируется только одна функция? - PullRequest
0 голосов
/ 27 ноября 2018

Мой файл sagas выглядит следующим образом: -

function* handleAPIs(request){  
    let response ;
  try{
        switch(request.params.type){

                case "GET":
                    response = yield call(genericGetAPI,request.params.url);    
                    yield put({type: HANDLE_STATE, stateValues: [{'key':request.params.responseStateVariable,'value':response}]}); 

                    response = yield call(genericGetAPI, url);    
                    yield put({type: HANDLE_STATE, stateValues: [{'key':request.params.responseStateVariable,'value':response}]}); 
                break;
            case "POST": 
                        response = yield call(genericPostAPI, {'fields':request.params.requestParams,'url':request.params.url});    
                        yield put({type: HANDLE_STATE, stateValues: [{'key':request.params.responseStateVariable,'value':response}]}); 
                break; 
                case "PUT": 
                response = yield call(genericPutAPI, {'fields':request.params.requestParams,'url':request.params.url});    
                yield put({type: HANDLE_STATE, stateValues: [{'key':request.params.responseStateVariable,'value':response}]}); 
        break; 
            case "DELETE":  
                        response = yield call(genericDeleteAPI,request.params.url);    
                        yield put({type: HANDLE_STATE, stateValues: [{'key':request.params.responseStateVariable,'value':response}]}); 
                break;
        }    
  } catch (error) {
    yield put({type: REQUEST_ERROR, error: error.message});

  } finally {
    yield put({type: SENDING_REQUEST, sending: false});
  }
}

export function* handleAPI(){ 
    yield takeEvery(HANDLE_API,handleAPIs);
}

Мой файл теста Sagas выглядит следующим образом: -

import { testSaga } from 'redux-saga-test-plan';
import {
    HANDLE_API,
  } from '../constants';
import { handleAPI } from '../sagas';

describe('Saga file testing', () => {
  it('Handle API', () => {
    testSaga(handleAPI)
    .next()
    .takeEvery(HANDLE_API)
    .finish()
    .isDone();
  });
});

Поскольку я не могу использовать функцию saga handleAPIs, так как ее нет вэкспорт.Как я могу написать контрольный пример следующего файла?Я использую план редукса-саги-теста.

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