Skip to content

Commit d333b25

Browse files
authored
Merge pull request #3893 from Crebs/@W-18992574
[DO NOT MERGE] @W-18992574 Updating unit test on web sockets to clean up after each test more
2 parents 4422856 + 5ad1abd commit d333b25

1 file changed

Lines changed: 40 additions & 27 deletions

File tree

libs/SalesforceSDKCore/SalesforceSDKCoreTests/WebSocketClientTests.swift

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -98,43 +98,52 @@ class MockUserAccountManager: UserAccountManaging {
9898
}
9999

100100
final class WebSocketClientTests: XCTestCase {
101+
var client: WebSocketClient?
102+
var mockTask: MockWebSocket?
103+
104+
override func tearDown() {
105+
client?.cancel()
106+
client = nil
107+
mockTask = nil
108+
super.tearDown()
109+
}
101110

102111
func testSendMessageSuccess() async {
103112
// Given
104-
let mockTask = MockWebSocket()
105-
let client = WebSocketClient(task: mockTask)
113+
mockTask = MockWebSocket()
114+
client = WebSocketClient(task: mockTask!)
106115
let message = URLSessionWebSocketTask.Message.string("test")
107116

108117
// When
109118
do {
110-
try await client.send(message)
111-
XCTAssertEqual(mockTask.sentMessages.count, 1)
119+
try await client?.send(message)
120+
XCTAssertEqual(mockTask?.sentMessages.count, 1)
112121
} catch {
113122
XCTFail("Shouldn't send message: \(error)")
114123
}
115124
}
116125

117126
func testCancelTask() {
118127
// Given
119-
let mockTask = MockWebSocket()
120-
let client = WebSocketClient(task: mockTask)
128+
mockTask = MockWebSocket()
129+
client = WebSocketClient(task: mockTask!)
121130

122131
// When
123-
client.cancel()
132+
client?.cancel()
124133

125134
// Then
126-
XCTAssertTrue(mockTask.didCancel)
135+
XCTAssertTrue(mockTask?.didCancel ?? false)
127136
}
128137

129138
func testListenReceivesSuccessMessage() {
130139

131140
// Given
132-
let mockTask = MockWebSocket()
133-
let client = WebSocketClient(task: mockTask)
141+
mockTask = MockWebSocket()
142+
client = WebSocketClient(task: mockTask!)
134143
let expectation = self.expectation(description: "Message received")
135144

136145
// When
137-
client.listen { result in
146+
client?.listen { result in
138147
switch result {
139148
case .success(_):
140149
// Then
@@ -148,20 +157,20 @@ final class WebSocketClientTests: XCTestCase {
148157

149158
func testListenReceivesFailureAndPerformRetryToSuccess() {
150159
// Given
151-
let mockTask = MockWebSocket()
152-
mockTask.shouldError.toggle()
153-
mockTask.originalRequest = URLRequest(url: URL(string: "ws://mock.com")!)
160+
mockTask = MockWebSocket()
161+
mockTask?.shouldError.toggle()
162+
mockTask?.originalRequest = URLRequest(url: URL(string: "ws://mock.com")!)
154163
let mockNetwork = MockNetwork()
155164
mockNetwork.mockWebSocket = mockTask
156165
let mockAccountManager = MockUserAccountManager()
157-
let client = WebSocketClient(task: mockTask,
158-
network: mockNetwork,
159-
accountManager: mockAccountManager)
166+
client = WebSocketClient(task: mockTask!,
167+
network: mockNetwork,
168+
accountManager: mockAccountManager)
160169
let expectation = self.expectation(description: "Success received")
161170

162171
// When
163-
client.listen { result in
164-
mockTask.keepReceivingMessages.toggle()
172+
client?.listen { result in
173+
self.mockTask?.keepReceivingMessages.toggle()
165174
switch result {
166175
case .success(let message):
167176
// Then
@@ -175,25 +184,29 @@ final class WebSocketClientTests: XCTestCase {
175184

176185
func testListenReceivesFailureAndPerformRetryToFailure() {
177186
// Given
178-
let mockTask = MockWebSocket()
179-
mockTask.shouldError.toggle()
180-
mockTask.originalRequest = URLRequest(url: URL(string: "ws://mock.com")!)
187+
mockTask = MockWebSocket()
188+
mockTask?.shouldError.toggle()
189+
mockTask?.originalRequest = URLRequest(url: URL(string: "ws://mock.com")!)
181190
let mockAccountManager = MockUserAccountManager()
182191
mockAccountManager.shouldError.toggle()
183192
let mockNetwork = MockNetwork()
184193
mockNetwork.shouldError.toggle()
185-
let client = WebSocketClient(task: mockTask,
186-
network: mockNetwork,
187-
accountManager: mockAccountManager)
194+
client = WebSocketClient(task: mockTask!,
195+
network: mockNetwork,
196+
accountManager: mockAccountManager)
188197
let expectation = self.expectation(description: "Error received")
198+
var fulfilled = false
189199

190200
// When
191-
client.listen { result in
201+
client?.listen { result in
192202
switch result {
193203
case .failure(let error):
194204
// Then
195205
XCTAssertNotNil(error)
196-
expectation.fulfill()
206+
if !fulfilled {
207+
fulfilled = true
208+
expectation.fulfill()
209+
}
197210
default:
198211
XCTFail("Expected Failure")
199212
}

0 commit comments

Comments
 (0)