I have a problem using actioncable with feature specs using Capybara-webkit. Actioncable is working perfectly on my development server, but when testing the javascript cant seem to connect.
This is the output from the javascript console which is running during my feature spec
WebSocket connection to 'ws://127.0.0.1:32789/cable' failed: Unexpected response code: 200
This is the output of my test.log
at that moment
GET "/cable" for 127.0.0.1 at 2017-01-26 13:33:23 +0000
GET "/cable/" for 127.0.0.1 at 2017-01-26 13:33:23 +0000
Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
Its strange because it seems like Its connecting fine according to the log, but the javascript throws an error and stops executing... Also how is 200
an error code? Doesn't 200
status code always mean OK
?
Thanks in advance
The default server used by Capybara is :webrick which doesn't support testing ActionCable (it will be changing whenever Capybara 3.0 releases). To switch it to using puma which will support testing with ActionCable you can specify Capybara.server = :puma
as part of your Capybara configuration.