У меня есть страница, которая выполняет поиск в 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', и это драгоценные камни для тестирования :
Тест выполняется с драйвером-призраком.
Есть идеи, что я могу сделать, чтобы это исправить? какие-либо рекомендации (или ссылки!), которые могут помочь мне решить эту проблему?
Заранее спасибо!