@@ -60,6 +60,44 @@ class SocketMangerTest : XCTestCase {
60
60
waitForExpectations ( timeout: 0.3 )
61
61
}
62
62
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
+
63
101
func testManagerCallsDisconnect( ) {
64
102
setUpSockets ( )
65
103
@@ -154,6 +192,10 @@ public enum ManagerExpectation: String {
154
192
}
155
193
156
194
public class TestManager : SocketManager {
195
+ public func setCurrentReconnect( currentReconnect: Int ) {
196
+ self . currentReconnectAttempt = currentReconnect
197
+ }
198
+
157
199
public override func disconnect( ) {
158
200
setTestStatus ( . disconnected)
159
201
}
0 commit comments