Не удается подключиться к веб-сокету при использовании capybara и docker-chromedriver - PullRequest
0 голосов
/ 28 марта 2019

При выполнении теста на капибару мои тесты не выполняются, когда мне нужен ответ от веб-сокета, это появляется в console.log:

WebSocket connection to 'ws://127.0.0.1:3001/cable' failed: WebSocket is closed before the connection is established.

Я использую изображение docker-chromedriver. Версия драйвера: ChromeDriver 2.46.628388 Я запускаю сайт rails с actioncable для веб-сокетов.

Сервер настроен на прием запросов откуда угодно, поэтому я не думаю, что cors вызывает проблемы. Вот конфиг:

   config.action_cable.allowed_request_origins = [/http:\/\/*/, /https:\/\/*/] 

В среде разработки все работает. Когда я запускаю приемочный тест с использованием хромированного драйвера, мой тест работает до тех пор, пока я не попаду в раздел, в котором нужно использовать actioncable, а затем тест не пройден.

Кто-нибудь сталкивался с подобным типом ошибки раньше или, возможно, имеет представление о том, почему интерфейс не может подключиться к ws? Из тестов я вижу, что сервер rails правильно запускает actioncable из журналов.

1 Ответ

0 голосов
/ 01 апреля 2019

Проблема закончилась тем, что я пропускал все домены через http, протокол должен был быть ws.

   config.action_cable.allowed_request_origins = [/http:\/\/*/, /https:\/\/*/] 

Должно было быть:

   config.action_cable.allowed_request_origins = [/ws:\/\/*/, /wss:\/\/*/] 
...