Фермент + Реагировать на ожидаемую строку компонента - не удалось проанализировать селектор - PullRequest
0 голосов
/ 13 февраля 2019

Итак, у меня есть этот тестовый пример, который мне нужно решить.Фон обновляет среду разработки до более новой версии, и после этого многие наши тесты не сработали.

Здесь у меня есть странный случай, который приводит к следующему: «Не удалось проанализировать селектор: подробности о цене ярлыка 1»

Вот так выглядит тестовый фрагмент, надеюсь, я добавил все необходимое.

it('Should render with price and one addon', () => {
    data.addonHeaderName = 'addonHeaderName';
    data.addons.push(
      {
        price: {
          label: 'Addon text 1',
          value: 50.33,
          unit: 'dollars',
          vat: 'excl'
        },
        discount: {
          label: 'Addon text 2',
          value: 11.43,
          unit: 'dollars',
          vat: 'excl'
        },
        future: false,
        addonIcon: 'icon',
        ecoText: 'Addon eco text',
        linkUrl: 'http://testaddonlink.com'
      }
    );
    
    
    data.contract.prices.push(
      {
        id: 'price',
        label: 'Label price detail 1',
        unit: 'dollars',
        value: 4.03
      },
      {
        id: 'Label price detail 2',
        label: 'Discount',
        unit: 'dollars',
        value: -3.00
      }
    );
    
    
 const component = shallow(
      <MyContract
        data={data}
        andSomeOtherStuff={otherStuff}
      />
    );
    expect(component).toMatchSnapshot();
    expect(component.find('Label price detail 1')).toBeTruthy();
    expect(component.find('Label price detail 2')).toBeTruthy();
    expect(component.find('Addon text 1')).toBeTruthy();
    expect(component.find('Addon text 2')).toBeTruthy();
    expect(component.find('Addon eco text')).toBeTruthy();

Если я закомментирую первое ожидание, оно перейдет к следующему, а затем к другому и т. Д. И т. Д.

Ранее мы запускали Enzyme 2.9.1вместе с ферментом-адаптером-реагирующим-15 (и, конечно, с React 15), но с тех пор, как мы обновились до React 16, нам также необходимо обновить несколько других зависимостей, таких как эта.И затем дерьмо поразило поклонника.

Теперь мы на Ферменте 3.8.0, энзим-адаптере-реактиве-16.3 и Реакте 16.3.х.

Я возился с попыткамивместо этого, чтобы получить его как строку, но не буэно.Есть идеи о том, что мне здесь не хватает?

1 Ответ

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

Фермент находит работы с селекторами CSS, поэтому, если вы хотите выполнить поиск по метке, вам, вероятно, следует использовать что-то вроде:

component.find('[label="Label price detail 1"]')

Кроме того, я считаю, что это всегда будет правдой, независимо от того, найден он илине.(Хотя я не уверен в этом).

Я обычно использую .toHaveLength(1), чтобы проверить, отрисовывается ли он!

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