diff options
author | Javan Makhmali <javan@javan.us> | 2016-05-28 13:16:59 -0400 |
---|---|---|
committer | Jon Moss <me@jonathanmoss.me> | 2016-05-31 13:06:11 -0400 |
commit | 410a32ffbdfa45aeee2c8ec0137201d3b95a33ff (patch) | |
tree | cb18290907a47a918ca0f191730fa23444c8d946 /actioncable/test/javascript/src/test_helpers/consumer_test_helper.coffee | |
parent | fb0f0c7f6eddcc6a566093bed5a6e94404f883ca (diff) | |
download | rails-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.coffee | 37 |
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() |