Skip to content

Commit

Permalink
fix: call callback on main thread APN tokens (#40)
Browse files Browse the repository at this point in the history
  • Loading branch information
levibostian authored Sep 15, 2021
1 parent 216775a commit 982ce9d
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 26 deletions.
36 changes: 20 additions & 16 deletions Sources/MessagingPush/MessagingPush.swift
Original file line number Diff line number Diff line change
Expand Up @@ -80,14 +80,16 @@ public class MessagingPush: MessagingPushInstance {

httpClient
.request(httpRequestParameters) { [weak self] result in
guard let self = self else { return }

switch result {
case .success:
self.deviceToken = deviceToken
onComplete(Result.success(()))
case .failure(let error):
onComplete(Result.failure(.http(error)))
DispatchQueue.main.async { [weak self] in
guard let self = self else { return }

switch result {
case .success:
self.deviceToken = deviceToken
onComplete(Result.success(()))
case .failure(let error):
onComplete(Result.failure(.http(error)))
}
}
}
}
Expand Down Expand Up @@ -117,14 +119,16 @@ public class MessagingPush: MessagingPushInstance {

httpClient
.request(httpRequestParameters) { [weak self] result in
guard let self = self else { return }

switch result {
case .success:
self.deviceToken = nil
onComplete(Result.success(()))
case .failure(let error):
onComplete(Result.failure(.http(error)))
DispatchQueue.main.async { [weak self] in
guard let self = self else { return }

switch result {
case .success:
self.deviceToken = nil
onComplete(Result.success(()))
case .failure(let error):
onComplete(Result.failure(.http(error)))
}
}
}
}
Expand Down
11 changes: 3 additions & 8 deletions Tests/MessagingPush/MessagingPushTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -84,14 +84,10 @@ class MessagingPushTest: UnitTest {
expect.fulfill()
}

guard let storedToken = push.deviceToken else {
return XCTFail()
}

XCTAssertEqual(storedToken, actualToken)

waitForExpectations()

guard let storedToken = push.deviceToken else { return XCTFail() }
XCTAssertEqual(storedToken, actualToken)
XCTAssertTrue(httpClientMock.requestCalled)
}

Expand Down Expand Up @@ -167,10 +163,9 @@ class MessagingPushTest: UnitTest {
expect.fulfill()
}

XCTAssertNil(push.deviceToken)

waitForExpectations()

XCTAssertNil(push.deviceToken)
XCTAssertTrue(httpClientMock.requestCalled)
}

Expand Down
4 changes: 2 additions & 2 deletions Tests/Tracking/VersionTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import XCTest

class VersionTest: XCTestCase {
func test_versionValidSemanticVersion() {
// regex: https://regexr.com/63gj6
XCTAssertTrue(SdkVersion.version.matches(regex: #"(\d+)\.(\d+)\.(\d+)(-alpha|-beta)*"#))
// regex: https://regexr.com/65mpt
XCTAssertTrue(SdkVersion.version.matches(regex: #"(\d+)\.(\d+)\.(\d+)(-alpha|-beta)*(\.\d)*"#))
}
}

0 comments on commit 982ce9d

Please sign in to comment.