OnClick Enzyme - тестовая ошибка: метод «simulate» предназначен для запуска на 1 узле.0 найдено вместо - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть следующая ситуация для React JS.Я задавал подобный вопрос раньше и пытался применить тот же метод к этому:

        className={'custom-grid-buttons tran-button enrollment-button'} 
                  onClick={() => {this.props.openBatchUpdateLOAModal()}}
                >
                  Batch Update
                </button>
                <button 
                  className={'custom-grid-buttons tran-button enrollment-button'} 
                  onClick={() => {this.props.getSelectedLOAs().then(() => {
                    this.props.selectedLOAs && this.props.selectedLOAs.length > 0 ? this.props.openDownloadLOAModal() : alert('Please select at least one LOA.')})}}
                >
                  Download By Custodian
                </button>

Получив следующую ошибку: Метод «simulate» предназначен для запуска на 1 узле.Вместо этого найдено 0. Я разместил здесь большую часть тестового файла, но я считаю, что основная ошибка исходит из этой строки:

     wrapper.find(".custom-grid-buttons tran-button enrollment-button").simulate("click"); 

Установлены все плюсы:

 // jest mock functions (mocks this.props.func)
const setFromStatusList = jest.fn();
const openBatchUpdateLOAModal = jest.fn();
const getSelectedLOAs = jest.fn();
const getDynamicRender = jest.fn();
const openDownloadLOAModal = jest.fn();
const onClick =  jest.fn();
 // defining this.props
const baseProps = {
  location: {
    pathname:[],
 },
 services :{
    Counterparty :{
        URL : "TEST URL",
        subscription_key: "test key",
    },
},
 setFromStatusList,
 openBatchUpdateLOAModal,
 getSelectedLOAs,
 backgroundapp:{},
 getDynamicRender,
 openDownloadLOAModal,
 onClick,
  selectedLOAS:[],
  }

   beforeEach(() => wrapper = shallow(<BrowserRouter><LOA {...baseProps} /></BrowserRouter>));

      it("should call openBatchUpdateLOAModal click", () => {
// Reset info from possible previous calls of these mock functions:
baseProps.openBatchUpdateLOAModal.mockClear();
baseProps.getSelectedLOAs.mockClear();

wrapper.setProps({
 selectedLOAS: null
   });

// Find the button and call the onClick handler
wrapper.find(".custom-grid-buttons tran-button enrollment-button").simulate("click");
// Test to make sure prop functions were called via simulating the button click
expect(baseProps.openBatchUpdateLOAModal).toHaveBeenCalled();
 expect(baseProps.getSelectedLOAs).toHaveBeenCalled();

1 Ответ

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

Скорее всего, просто пропустите . перед именами других классов:

 wrapper.find(".custom-grid-buttons .tran-button .enrollment-button").simulate("click"); 

Хотя это, вероятно, можно упростить до:

 wrapper.find(".enrollment-button").simulate("click"); 

Если у вас нет многократной регистрациикнопки на вашей странице.

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