Skip to content

test(*): fix troubles between promise-based scroll-to tests & mq events #371

Merged
merged 1 commit into from
Nov 26, 2017

Conversation

tx44
Copy link
Contributor

@tx44 tx44 commented Nov 25, 2017

Исправление проблем с тестами на iOS Safari 10+.
Незадействованное увеличение ширины экрана вкупе с промисом в каждом тесте на scroll-to выстреливало пачку ивентов на изменение матчинга в <Mq />:
https://github.com/alfa-laboratory/arui-feather/blob/master/src/mq/mq.jsx#L41

Пачка ивентов триггерила массу setState дальше по дереву, в итоге можно было словить например здесь проблемы с множественными изменениями state и демонтирования компонента:
https://github.com/alfa-laboratory/arui-feather/blob/master/src/select/select.jsx#L263

Что вело к разного рода ошибкам, например:

  link
    ✖ should call `onClick` callback after link was clicked
      Mobile Safari 11.0.0 (iOS 11.1.0)
    NotFoundError (DOM Exception 8): The object can not be found here. (src/intl-phone-input/intl-phone-input-test.jsx:27382)
    click@[native code]
    src/link/link-test.jsx:25250:24

Стало заметно когда добавили <IntlPhoneInput />, в котором есть <Select />, в котором, в свою очередь, есть <Mq />. <Mq /> теперь создавал инстанс MediaQueryList с listener до тестов /lib/scroll-to.

Проблема началась с warning:

  link
    ✖ should call `onClick` callback after link was clicked
      Mobile Safari 10.0.0 (iOS 10.3.0)
    Error: Warning: There is an internal error in the React performance measurement code. We did not expect componentWillUnmount timer to stop while no timer is still in progress for another instance. Please report this as a bug in React. (tools/karma-warnings.js:14)
    click@[native code]
    src/link/link-test.jsx:25222:24

https://travis-ci.org/alfa-laboratory/arui-feather/jobs/305787347

NB: Если подобные warning скрывать в сорцах ReactDOM/lib/ReactDebugTool, то дебаг становится сильно легче.
NB2: Инфа по теме: facebook/react#6949 (comment)

@tx44 tx44 merged commit f656b4a into master Nov 26, 2017
@tx44 tx44 deleted the test/fix-promise-based-tests-failing-on-ios-safari branch November 26, 2017 10:54
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants