@@ -633,14 +633,30 @@ class PusherChannelSpec: QuickSpec {
633
633
connection. channels. channels [ " private-channel " ] = chan
634
634
expect ( chan. unsentEvents) . to ( beEmpty ( ) )
635
635
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 " ) )
637
637
expect ( socket. stubber. calls) . to ( beEmpty ( ) )
638
638
connection. connect ( )
639
639
let parsedSubscribeArgs = convertStringToDictionary ( socket. stubber. calls. last? . args!. first as! String )
640
640
let expectedDict = [ " data " : [ " data " : " testing client events " ] , " event " : " client-test-event " , " channel " : " private-channel " ]
641
641
let parsedEqualsExpected = NSDictionary ( dictionary: parsedSubscribeArgs!) . isEqualToDictionary ( NSDictionary ( dictionary: expectedDict) as [ NSObject : AnyObject ] )
642
642
expect ( parsedEqualsExpected) . to ( beTrue ( ) )
643
643
}
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
+ }
644
660
}
645
661
}
646
662
}
0 commit comments