UNPKG

2.11 kBtext/coffeescriptView Raw
1chai = require 'chai'
2sinon = require 'sinon'
3chai.use require 'sinon-chai'
4Robot = require 'hubot/src/robot'
5TextMessage = require('hubot/src/message').TextMessage
6
7expect = chai.expect
8
9describe 'event-announcer', ->
10
11 adapter = null
12 robot = null
13 user = null
14
15 beforeEach (done) ->
16
17 robot = new Robot(null, 'mock-adapter', false, 'Hubot')
18
19 robot.adapter.on 'connected', ->
20 (require '../src/event-announcer')(@robot)
21
22 user = robot.brain.userForId('1', name: 'test', room: "#test")
23 adapter = robot.adapter
24
25 done()
26
27 robot.run()
28
29
30 afterEach ->
31 robot.shutdown()
32
33 it '"sub foo" subscribes user to foo', (done) ->
34
35 adapter.on "send", (envelope, strings) ->
36 expect(strings[0]).match /subscribed #test to foo/
37 done()
38
39 adapter.receive new TextMessage(user, "Hubot sub foo")
40
41 it '"show my subs" show subscribers subscriptions', (done) ->
42
43 adapter.receive new TextMessage(user, "Hubot sub foo")
44
45 adapter.on "send", (envelope, strings) ->
46 expect(strings[0]).match /#test is listening to: foo/
47 done()
48
49 adapter.receive new TextMessage(user, "Hubot show my subs")
50
51 it 'when subscribed, an event will be sent to subscribers', (done) ->
52
53 adapter.receive new TextMessage(user, "Hubot sub foo")
54
55 adapter.on "send", (envelope, strings) ->
56 expect(strings[0]).match /fooEvent/
57 done()
58
59 robot.emit "ea-event", { name: "foo", message: "fooEvent" }
60
61 it 'unsubscribers should report an unsubscription', (done) ->
62
63 adapter.receive new TextMessage(user, "Hubot sub foo")
64
65 adapter.on "send", (envelope, strings) ->
66 expect(strings[0]).match /unsubscribed #test from foo/
67 done()
68
69 adapter.receive new TextMessage(user, "Hubot unsub foo")
70
71 it 'unsubscribers should not show in my subs', (done) ->
72
73 adapter.receive new TextMessage(user, "Hubot sub foo")
74 adapter.receive new TextMessage(user, "Hubot unsub foo")
75
76 adapter.on "send", (envelope, strings) ->
77 expect(strings[0]).match /no subs for #test/
78 done()
79
80 adapter.receive new TextMessage(user, "Hubot show my subs")