aboutsummaryrefslogtreecommitdiffstats
path: root/actioncable/test/javascript/src/unit/subscription_test.coffee
diff options
context:
space:
mode:
authorJavan Makhmali <javan@javan.us>2016-11-20 17:08:54 -0500
committerJavan Makhmali <javan@javan.us>2016-11-21 09:50:00 -0500
commit7083fa27a4151e063b750249ae7902104a897968 (patch)
tree3f99ac7b04a6667e25c956f94277690242336096 /actioncable/test/javascript/src/unit/subscription_test.coffee
parent6f30cb35596775b2b98bba05448f25ccbac0a2c0 (diff)
downloadrails-7083fa27a4151e063b750249ae7902104a897968.tar.gz
rails-7083fa27a4151e063b750249ae7902104a897968.tar.bz2
rails-7083fa27a4151e063b750249ae7902104a897968.zip
Add more Action Cable JavaScript tests
Diffstat (limited to 'actioncable/test/javascript/src/unit/subscription_test.coffee')
-rw-r--r--actioncable/test/javascript/src/unit/subscription_test.coffee40
1 files changed, 40 insertions, 0 deletions
diff --git a/actioncable/test/javascript/src/unit/subscription_test.coffee b/actioncable/test/javascript/src/unit/subscription_test.coffee
new file mode 100644
index 0000000000..07027ed170
--- /dev/null
+++ b/actioncable/test/javascript/src/unit/subscription_test.coffee
@@ -0,0 +1,40 @@
+{module, test} = QUnit
+{consumerTest} = ActionCable.TestHelpers
+
+module "ActionCable.Subscription", ->
+ consumerTest "#initialized callback", ({server, consumer, assert, done}) ->
+ consumer.subscriptions.create "chat",
+ initialized: ->
+ assert.ok true
+ done()
+
+ consumerTest "#connected callback", ({server, consumer, assert, done}) ->
+ subscription = consumer.subscriptions.create "chat",
+ connected: ->
+ assert.ok true
+ done()
+
+ server.broadcastTo(subscription, message_type: "confirmation")
+
+ consumerTest "#disconnected callback", ({server, consumer, assert, done}) ->
+ subscription = consumer.subscriptions.create "chat",
+ disconnected: ->
+ assert.ok true
+ done()
+
+ server.broadcastTo subscription, message_type: "confirmation", ->
+ server.close()
+
+ consumerTest "#perform", ({consumer, server, assert, done}) ->
+ subscription = consumer.subscriptions.create "chat",
+ connected: ->
+ @perform(publish: "hi")
+
+ server.on "message", (message) ->
+ data = JSON.parse(message)
+ assert.equal data.identifier, subscription.identifier
+ assert.equal data.command, "message"
+ assert.deepEqual data.data, JSON.stringify(action: { publish: "hi" })
+ done()
+
+ server.broadcastTo(subscription, message_type: "confirmation")