11should = require ' should'
22{Adapter , TextMessage , EnterMessage , LeaveMessage , TopicMessage , Message , CatchAllMessage } = require .main .require ' hubot'
3+ ReactionMessage = require ' ../src/reaction-message'
34
45describe ' Adapter' , ->
56 it ' Should initialize with a robot' , ->
@@ -144,6 +145,36 @@ describe 'Handling incoming messages', ->
144145 should .equal (@stubs ._received instanceof TopicMessage), true
145146 @stubs ._received .user .id .should .equal @stubs .user .id
146147
148+ it ' Should handle reaction_added events as envisioned' , ->
149+ reactionMessage = {
150+ type : ' reaction_added' , user : @stubs .user .id , item_user : @stubs .self .id
151+ item : { type : ' message' , channel : @stubs .channel .id , ts : ' 1360782804.083113'
152+ },
153+ reaction : ' thumbsup' , event_ts : ' 1360782804.083113'
154+ }
155+ @slackbot .reaction reactionMessage
156+ should .equal (@stubs ._received instanceof ReactionMessage), true
157+ should .equal @stubs ._received .user .id , @stubs .user .id
158+ should .equal @stubs ._received .user .room , @stubs .channel .id
159+ should .equal @stubs ._received .item_user .id , @stubs .self .id
160+ should .equal @stubs ._received .type , ' added'
161+ should .equal @stubs ._received .reaction , ' thumbsup'
162+
163+ it ' Should handle reaction_removed events as envisioned' , ->
164+ reactionMessage = {
165+ type : ' reaction_removed' , user : @stubs .user .id , item_user : @stubs .self .id
166+ item : { type : ' message' , channel : @stubs .channel .id , ts : ' 1360782804.083113'
167+ },
168+ reaction : ' thumbsup' , event_ts : ' 1360782804.083113'
169+ }
170+ @slackbot .reaction reactionMessage
171+ should .equal (@stubs ._received instanceof ReactionMessage), true
172+ should .equal @stubs ._received .user .id , @stubs .user .id
173+ should .equal @stubs ._received .user .room , @stubs .channel .id
174+ should .equal @stubs ._received .item_user .id , @stubs .self .id
175+ should .equal @stubs ._received .type , ' removed'
176+ should .equal @stubs ._received .reaction , ' thumbsup'
177+
147178 it ' Should handle unknown events as catchalls' , ->
148179 @slackbot .message {subtype : ' hidey_ho' , user : @stubs .user , channel : @stubs .channel }
149180 should .equal (@stubs ._received instanceof CatchAllMessage), true
@@ -159,3 +190,13 @@ describe 'Handling incoming messages', ->
159190 it ' Should ignore messages it sent itself, if sent as a botuser' , ->
160191 @slackbot .message { subtype : ' bot_message' , bot : @stubs .self_bot , channel : @stubs .channel , text : ' Ignore me' }
161192 should .equal @stubs ._received , undefined
193+
194+ it ' Should ignore reaction events that it generated itself' , ->
195+ reactionMessage = { type : ' reaction_removed' , user : @stubs .self .id , reaction : ' thumbsup' , event_ts : ' 1360782804.083113' }
196+ @slackbot .reaction reactionMessage
197+ should .equal @stubs ._received , undefined
198+
199+ it ' Should ignore reaction events that it generated itself as a botuser' , ->
200+ reactionMessage = { type : ' reaction_added' , user : @stubs .self_bot .id , reaction : ' thumbsup' , event_ts : ' 1360782804.083113' }
201+ @slackbot .reaction reactionMessage
202+ should .equal @stubs ._received , undefined
0 commit comments