@@ -60,6 +60,44 @@ class SocketMangerTest : XCTestCase {
6060 waitForExpectations ( timeout: 0.3 )
6161 }
6262
63+ func testManagerDoesNotCallConnectWhenConnectingWithLessThanOneReconnect( ) {
64+ setUpSockets ( )
65+
66+ let expect = expectation ( description: " The manager should not call connect on the engine " )
67+ expect. isInverted = true
68+
69+ let engine = TestEngine ( client: manager, url: manager. socketURL, options: nil )
70+
71+ engine. onConnect = {
72+ expect. fulfill ( )
73+ }
74+ manager. setTestStatus ( . connecting)
75+ manager. setCurrentReconnect ( currentReconnect: 0 )
76+ manager. engine = engine
77+
78+ manager. connect ( )
79+
80+ waitForExpectations ( timeout: 0.3 )
81+ }
82+
83+ func testManagerCallConnectWhenConnectingAndMoreThanOneReconnect( ) {
84+ setUpSockets ( )
85+
86+ let expect = expectation ( description: " The manager should call connect on the engine " )
87+ let engine = TestEngine ( client: manager, url: manager. socketURL, options: nil )
88+
89+ engine. onConnect = {
90+ expect. fulfill ( )
91+ }
92+ manager. setTestStatus ( . connecting)
93+ manager. setCurrentReconnect ( currentReconnect: 1 )
94+ manager. engine = engine
95+
96+ manager. connect ( )
97+
98+ waitForExpectations ( timeout: 0.8 )
99+ }
100+
63101 func testManagerCallsDisconnect( ) {
64102 setUpSockets ( )
65103
@@ -154,6 +192,10 @@ public enum ManagerExpectation: String {
154192}
155193
156194public class TestManager : SocketManager {
195+ public func setCurrentReconnect( currentReconnect: Int ) {
196+ self . currentReconnectAttempt = currentReconnect
197+ }
198+
157199 public override func disconnect( ) {
158200 setTestStatus ( . disconnected)
159201 }
0 commit comments