提交 7083fa27 编写于 作者: J Javan Makhmali

Add more Action Cable JavaScript tests

上级 6f30cb35
......@@ -21,6 +21,16 @@ TestHelpers.consumerTest = (name, options = {}, callback) ->
assert.equal clients.length, 1
assert.equal clients[0].readyState, WebSocket.OPEN
server.broadcastTo = (subscription, data = {}, callback) ->
data.identifier = subscription.identifier
if data.message_type
data.type = ActionCable.INTERNAL.message_types[data.message_type]
delete data.message_type
server.send(JSON.stringify(data))
TestHelpers.defer(callback)
done = ->
consumer.disconnect()
server.close()
......
......@@ -4,5 +4,8 @@
ActionCable.TestHelpers =
testURL: "ws://cable.example.com/"
defer: (callback) ->
setTimeout(callback, 1)
originalWebSocket = ActionCable.WebSocket
QUnit.testDone -> ActionCable.WebSocket = originalWebSocket
{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")
{module, test} = QUnit
{consumerTest} = ActionCable.TestHelpers
module "ActionCable.Subscriptions", ->
consumerTest "create subscription with channel string", ({consumer, server, assert, done}) ->
channel = "chat"
server.on "message", (message) ->
data = JSON.parse(message)
assert.equal data.command, "subscribe"
assert.equal data.identifier, JSON.stringify({channel})
done()
consumer.subscriptions.create(channel)
consumerTest "create subscription with channel object", ({consumer, server, assert, done}) ->
channel = channel: "chat", room: "action"
server.on "message", (message) ->
data = JSON.parse(message)
assert.equal data.command, "subscribe"
assert.equal data.identifier, JSON.stringify(channel)
done()
consumer.subscriptions.create(channel)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册