Skip to content

Commit b2a33ce

Browse files
authored
[Infra] Reduce test flakes due to async variable assignment (#13610)
1 parent 3d035c1 commit b2a33ce

File tree

2 files changed

+8
-15
lines changed

2 files changed

+8
-15
lines changed

FirebaseAuth/Tests/Unit/AuthBackendRPCImplentationTests.swift

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -590,12 +590,10 @@ class AuthBackendRPCImplementationTests: RPCBaseTests {
590590
try self.rpcIssuer.respond(withJSON: [:])
591591
}
592592
_ = try? await rpcImplementation.call(with: request)
593-
// Make sure completeRequest updates.
594-
usleep(10000)
595593

596594
// Then
597595
let expectedHeader = HeartbeatLoggingTestUtils.nonEmptyHeartbeatsPayload.headerValue()
598-
let completeRequest = try XCTUnwrap(rpcIssuer.completeRequest)
596+
let completeRequest = await rpcIssuer.completeRequest.value
599597
let headerValue = completeRequest.value(forHTTPHeaderField: "X-Firebase-Client")
600598
XCTAssertEqual(headerValue, expectedHeader)
601599
}
@@ -619,10 +617,8 @@ class AuthBackendRPCImplementationTests: RPCBaseTests {
619617
try self.rpcIssuer.respond(withJSON: [:])
620618
}
621619
_ = try? await rpcImplementation.call(with: request)
622-
// Make sure completeRequest updates.
623-
usleep(10000)
624620

625-
let completeRequest = try XCTUnwrap(rpcIssuer.completeRequest)
621+
let completeRequest = await rpcIssuer.completeRequest.value
626622
let headerValue = completeRequest.value(forHTTPHeaderField: "X-Firebase-AppCheck")
627623
XCTAssertEqual(headerValue, fakeAppCheck.fakeAppCheckToken)
628624
}
@@ -651,11 +647,9 @@ class AuthBackendRPCImplementationTests: RPCBaseTests {
651647
try self.rpcIssuer.respond(withJSON: [:])
652648
}
653649
_ = try? await rpcImplementation.call(with: request)
654-
// Make sure completRequest updates.
655-
usleep(10000)
656650

657651
// Then
658-
let completeRequest = try XCTUnwrap(rpcIssuer.completeRequest)
652+
let completeRequest = await rpcIssuer.completeRequest.value
659653
XCTAssertNil(completeRequest.value(forHTTPHeaderField: "X-Firebase-Client"))
660654
}
661655
#endif // COCOAPODS || SWIFT_PACKAGE

FirebaseAuth/Tests/Unit/Fakes/FakeBackendRPCIssuer.swift

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class FakeBackendRPCIssuer: NSObject, AuthBackendRPCIssuer {
5252
/** @property completeRequest
5353
@brief The last request to be processed by the backend.
5454
*/
55-
var completeRequest: URLRequest?
55+
var completeRequest: Task<URLRequest, Never>!
5656

5757
/** @var _handler
5858
@brief A block we must invoke when @c respondWithError or @c respondWithJSON are called.
@@ -148,11 +148,10 @@ class FakeBackendRPCIssuer: NSObject, AuthBackendRPCIssuer {
148148
requestData = body
149149
// Use the real implementation so that the complete request can
150150
// be verified during testing.
151-
Task {
152-
self.completeRequest = await AuthBackend.request(withURL: requestURL!,
153-
contentType: contentType,
154-
requestConfiguration: request
155-
.requestConfiguration())
151+
completeRequest = Task {
152+
await AuthBackend.request(withURL: requestURL!,
153+
contentType: contentType,
154+
requestConfiguration: request.requestConfiguration())
156155
}
157156
decodedRequest = try? JSONSerialization.jsonObject(with: body) as? [String: Any]
158157
}

0 commit comments

Comments
 (0)