@@ -633,14 +633,30 @@ class PusherChannelSpec: QuickSpec {
633633 connection. channels. channels [ " private-channel " ] = chan
634634 expect ( chan. unsentEvents) . to ( beEmpty ( ) )
635635 chan. trigger ( " client-test-event " , data: [ " data " : " testing client events " ] )
636- expect ( chan. unsentEvents. keys ) . to ( contain ( " client-test-event " ) )
636+ expect ( chan. unsentEvents. last! . name ) . to ( equal ( " client-test-event " ) )
637637 expect ( socket. stubber. calls) . to ( beEmpty ( ) )
638638 connection. connect ( )
639639 let parsedSubscribeArgs = convertStringToDictionary ( socket. stubber. calls. last? . args!. first as! String )
640640 let expectedDict = [ " data " : [ " data " : " testing client events " ] , " event " : " client-test-event " , " channel " : " private-channel " ]
641641 let parsedEqualsExpected = NSDictionary ( dictionary: parsedSubscribeArgs!) . isEqualToDictionary ( NSDictionary ( dictionary: expectedDict) as [ NSObject : AnyObject ] )
642642 expect ( parsedEqualsExpected) . to ( beTrue ( ) )
643643 }
644+
645+ it ( " should send multipe client events with the same event name that were triggered before subscription was successful " ) {
646+ let chan = PusherChannel ( name: " private-channel " , connection: connection)
647+ connection. channels. channels [ " private-channel " ] = chan
648+ expect ( chan. unsentEvents) . to ( beEmpty ( ) )
649+ chan. trigger ( " client-test-event " , data: [ " data " : " testing client events " ] )
650+ chan. trigger ( " client-test-event " , data: [ " data " : " more testing client events " ] )
651+ expect ( chan. unsentEvents. last!. name) . to ( equal ( " client-test-event " ) )
652+ expect ( chan. unsentEvents. count) . to ( equal ( 2 ) )
653+ expect ( socket. stubber. calls) . to ( beEmpty ( ) )
654+ connection. connect ( )
655+ let parsedSubscribeArgs = convertStringToDictionary ( socket. stubber. calls. last? . args!. first as! String )
656+ let expectedDict = [ " data " : [ " data " : " more testing client events " ] , " event " : " client-test-event " , " channel " : " private-channel " ]
657+ let parsedEqualsExpected = NSDictionary ( dictionary: parsedSubscribeArgs!) . isEqualToDictionary ( NSDictionary ( dictionary: expectedDict) as [ NSObject : AnyObject ] )
658+ expect ( parsedEqualsExpected) . to ( beTrue ( ) )
659+ }
644660 }
645661 }
646662}
0 commit comments