Jest не находит className - PullRequest
       9

Jest не находит className

0 голосов
/ 19 декабря 2018

Я изо всех сил пытаюсь выяснить, почему мой тест jest никогда не может найти мои классы компонентов / Это вывод компонента из оператора отладки

  <FileLine file={{...}} readOnly={false} onSelectedRevisionChanged={[Function: mockConstructor]}>
  <tr className="warning">
    <td className="col-xs-2">
      Data
    </td>
    <td className="col-xs-2">
      <select className="revision-selection form-control" value="1" onChange={[Function: value]}>
        <option value="1">
          1
        </option>
        <option value="2">
          2
        </option>
      </select>
    </td>
    <td className="col-xs-2">
      Loading...
    </td>

Мой тест jest проверяет наличиеследующий

it.only('sends selected revision when changed', () => {		
		const selectionCallBack = jest.fn();
		const component = mount(<FileLine file={fileUnderTest} readOnly={false} onSelectedRevisionChanged={selectionCallBack} />);

		//This will change the drop down to a different value
		const revisionSelection = component.find('revision-selection');
		console.log(component.debug());
		expect(revisionSelection.length).to.equal(1);

		revisionSelection.simulate('change', { target: { value: '2' } });

		expect(selectionCallBack).toBeCalledWith('packageRoot/F5___/Apps/GM/GM.E86_r2');
	});

Оператор ожидания всегда указывает, что revisionSelection всегда неопределен.Довольно сбит с толку, как это возможно, учитывая, что он показывает этот класс в выводе.

1 Ответ

0 голосов
/ 19 декабря 2018

Если component.find('.revision-selection') (обратите внимание на ведущий . в поиске) возвращает undefined, тогда велика вероятность, что компонент не рендерит.

Я бы проверил, что:

expect(component.find('.revision-selection')).to.have.lengthOf(1);

А затем обновите свое назначение revisionSelection, чтобы выбрать первый матч:

const revisionSelection = component.find('.revision-selection').first();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...