Нужна помощь в проведении теста Capybara, основанного на реакции ActionCable, пройдите - PullRequest
0 голосов
/ 17 июня 2020

У меня есть страница, которая выполняет поиск в ElasticSearch, используя Sidekiq для выполнения поиска в фоновом режиме и ActionCable, чтобы сообщить клиентской части, когда будут готовы результаты. Это отлично работает, если вы протестируете его вручную.

Однако мой тест Capybara не работает

Scenario 'posts index page', js: true do

  login user

  visit posts_path(post.slug)

  # Expand the post
  click_link 'Expand'

  expect(page).to have_content("View Gallery")
  logout

end

end

Но это не удается, потому что он никогда не находит "Развернуть ", которая загружается после того, как ActionCable транслирует результаты поиска.

Я установил Sidekiq и ES, и при запуске тестов он работает нормально. Я проверил журналы во время выполнения теста, и ActionCable также передает результаты, как и ожидалось.

Я тестировал, используя предложение «сна» прямо перед проверкой ссылки «Развернуть», но это не так. t изменил результаты, поэтому я думаю, это не проблема времени, и интерфейс по какой-то причине пропускает трансляцию.

Приложение находится на Rails '~> 5.1', ​​и это драгоценные камни для тестирования :

enter image description here

Тест выполняется с драйвером-призраком.

Есть идеи, что я могу сделать, чтобы это исправить? какие-либо рекомендации (или ссылки!), которые могут помочь мне решить эту проблему?

Заранее спасибо!

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