aboutsummaryrefslogtreecommitdiffstats
path: root/actioncable/test/javascript/src/test_helpers/consumer_test_helper.coffee
diff options
context:
space:
mode:
authorJavan Makhmali <javan@javan.us>2016-05-28 13:16:59 -0400
committerJon Moss <me@jonathanmoss.me>2016-05-31 13:06:11 -0400
commit410a32ffbdfa45aeee2c8ec0137201d3b95a33ff (patch)
treecb18290907a47a918ca0f191730fa23444c8d946 /actioncable/test/javascript/src/test_helpers/consumer_test_helper.coffee
parentfb0f0c7f6eddcc6a566093bed5a6e94404f883ca (diff)
downloadrails-410a32ffbdfa45aeee2c8ec0137201d3b95a33ff.tar.gz
rails-410a32ffbdfa45aeee2c8ec0137201d3b95a33ff.tar.bz2
rails-410a32ffbdfa45aeee2c8ec0137201d3b95a33ff.zip
Add helper for testing against a mock WebSocket and server
Diffstat (limited to 'actioncable/test/javascript/src/test_helpers/consumer_test_helper.coffee')
-rw-r--r--actioncable/test/javascript/src/test_helpers/consumer_test_helper.coffee37
1 files changed, 37 insertions, 0 deletions
diff --git a/actioncable/test/javascript/src/test_helpers/consumer_test_helper.coffee b/actioncable/test/javascript/src/test_helpers/consumer_test_helper.coffee
new file mode 100644
index 0000000000..6b145dede8
--- /dev/null
+++ b/actioncable/test/javascript/src/test_helpers/consumer_test_helper.coffee
@@ -0,0 +1,37 @@
+#= require mock-socket
+
+{TestHelpers} = ActionCable
+
+TestHelpers.consumerTest = (name, options = {}, callback) ->
+ unless callback?
+ callback = options
+ options = {}
+
+ options.url ?= TestHelpers.testURL
+
+ QUnit.test name, (assert) ->
+ doneAsync = assert.async()
+
+ ActionCable.WebSocket = MockWebSocket
+ server = new MockServer options.url
+ consumer = ActionCable.createConsumer(options.url)
+
+ server.on "connection", ->
+ clients = server.clients()
+ assert.equal clients.length, 1
+ assert.equal clients[0].readyState, WebSocket.OPEN
+
+ done = ->
+ consumer.disconnect()
+ server.close()
+ doneAsync()
+
+ testData = {assert, consumer, server, done}
+
+ if options.connect is false
+ callback(testData)
+ else
+ server.on "connection", ->
+ testData.client = server.clients()[0]
+ callback(testData)
+ consumer.connect()