Skip to content

Commit 4be033f

Browse files
test(ios): update Swift tests for sync TurboModule API
Swift tests were still calling the four converted methods with resolve/reject callbacks. Update them to call the sync API directly and compare against the returned NSNumber/NSDictionary. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent d8027c2 commit 4be033f

3 files changed

Lines changed: 25 additions & 86 deletions

File tree

sample/ios/ReactNativeTests/AcceleratedCheckouts_SupportedTests.swift

Lines changed: 15 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,8 @@ class AcceleratedCheckouts_SupportedTests: XCTestCase {
6262
ShopifyCheckoutSheetKit.configuration.closeButtonTintColor = nil
6363
}
6464

65-
private func configureAcceleratedCheckouts(includeApplePay: Bool, customerAccessToken: String? = nil) {
66-
let expectation = self.expectation(description: "configureAcceleratedCheckouts")
67-
65+
@discardableResult
66+
private func configureAcceleratedCheckouts(includeApplePay: Bool, customerAccessToken: String? = nil) -> Bool {
6867
let storefrontDomain = "example.myshopify.com"
6968
let accessToken = "shpat_test_token"
7069
let email = "buyer@example.com"
@@ -73,20 +72,16 @@ class AcceleratedCheckouts_SupportedTests: XCTestCase {
7372
let contactFields: [String]? = includeApplePay ? ["email", "phone"] : nil
7473
let supportedShippingCountries: [String]? = includeApplePay ? ["IE", "CA"] : nil
7574

76-
shopifyCheckoutSheetKit.configureAcceleratedCheckouts(
75+
return shopifyCheckoutSheetKit.configureAcceleratedCheckouts(
7776
storefrontDomain,
7877
storefrontAccessToken: accessToken,
7978
customerEmail: email,
8079
customerPhoneNumber: phone,
8180
customerAccessToken: customerAccessToken,
8281
applePayMerchantIdentifier: merchantIdentifier,
8382
applyPayContactFields: contactFields,
84-
supportedShippingCountries: supportedShippingCountries,
85-
resolve: { _ in expectation.fulfill() },
86-
reject: { _, _, _ in }
87-
)
88-
89-
wait(for: [expectation], timeout: 2)
83+
supportedShippingCountries: supportedShippingCountries
84+
).boolValue
9085
}
9186

9287
func testConfigureAcceleratedCheckoutsSetsSharedConfigsOnIOS16() throws {
@@ -98,58 +93,23 @@ class AcceleratedCheckouts_SupportedTests: XCTestCase {
9893
}
9994

10095
func testIsAcceleratedCheckoutAvailableBeforeAndAfterConfig() throws {
101-
let beforeExpectation = expectation(description: "isAcceleratedCheckoutAvailable before")
102-
var beforeValue: Bool = true
103-
shopifyCheckoutSheetKit.isAcceleratedCheckoutAvailable({ value in
104-
beforeValue = (value as? Bool) ?? true
105-
beforeExpectation.fulfill()
106-
}, reject: { _, _, _ in })
107-
wait(for: [beforeExpectation], timeout: 2)
108-
XCTAssertEqual(beforeValue, false)
96+
XCTAssertEqual(shopifyCheckoutSheetKit.isAcceleratedCheckoutAvailable().boolValue, false)
10997

11098
configureAcceleratedCheckouts(includeApplePay: false)
11199

112-
let afterExpectation = expectation(description: "isAcceleratedCheckoutAvailable after")
113-
var afterValue: Bool = false
114-
shopifyCheckoutSheetKit.isAcceleratedCheckoutAvailable({ value in
115-
afterValue = (value as? Bool) ?? false
116-
afterExpectation.fulfill()
117-
}, reject: { _, _, _ in })
118-
wait(for: [afterExpectation], timeout: 2)
119-
XCTAssertEqual(afterValue, true)
100+
XCTAssertEqual(shopifyCheckoutSheetKit.isAcceleratedCheckoutAvailable().boolValue, true)
120101
}
121102

122103
func testIsApplePayAvailableRequiresApplePayConfig() throws {
123-
let beforeExpectation = expectation(description: "isApplePayAvailable before")
124-
var beforeValue: Bool = true
125-
shopifyCheckoutSheetKit.isApplePayAvailable({ value in
126-
beforeValue = (value as? Bool) ?? true
127-
beforeExpectation.fulfill()
128-
}, reject: { _, _, _ in })
129-
wait(for: [beforeExpectation], timeout: 2)
130-
XCTAssertEqual(beforeValue, false)
104+
XCTAssertEqual(shopifyCheckoutSheetKit.isApplePayAvailable().boolValue, false)
131105

132106
configureAcceleratedCheckouts(includeApplePay: false)
133107

134-
let withoutApplePayExpectation = expectation(description: "isApplePayAvailable without Apple Pay")
135-
var withoutApplePayValue: Bool = true
136-
shopifyCheckoutSheetKit.isApplePayAvailable({ value in
137-
withoutApplePayValue = (value as? Bool) ?? true
138-
withoutApplePayExpectation.fulfill()
139-
}, reject: { _, _, _ in })
140-
wait(for: [withoutApplePayExpectation], timeout: 2)
141-
XCTAssertEqual(withoutApplePayValue, false)
108+
XCTAssertEqual(shopifyCheckoutSheetKit.isApplePayAvailable().boolValue, false)
142109

143110
configureAcceleratedCheckouts(includeApplePay: true)
144111

145-
let afterExpectation = expectation(description: "isApplePayAvailable after")
146-
var afterValue: Bool = false
147-
shopifyCheckoutSheetKit.isApplePayAvailable({ value in
148-
afterValue = (value as? Bool) ?? false
149-
afterExpectation.fulfill()
150-
}, reject: { _, _, _ in })
151-
wait(for: [afterExpectation], timeout: 2)
152-
XCTAssertEqual(afterValue, true)
112+
XCTAssertEqual(shopifyCheckoutSheetKit.isApplePayAvailable().boolValue, true)
153113
}
154114

155115
func testConfigureAcceleratedCheckoutsStoresCustomerAccessToken() throws {
@@ -395,30 +355,21 @@ class AcceleratedCheckouts_SupportedTests: XCTestCase {
395355
XCTAssertTrue(PayWithApplePayButtonLabel.from("unknown", fallback: .buy) == .buy)
396356
}
397357

398-
func testConfigureAcceleratedCheckoutsResolvesFalseForInvalidApplePayContactField() throws {
399-
let expectation = self.expectation(description: "configureAcceleratedCheckouts invalid contact field resolves false")
400-
var resolved: Bool = true
401-
358+
func testConfigureAcceleratedCheckoutsReturnsFalseForInvalidApplePayContactField() throws {
402359
let storefrontDomain = "example.myshopify.com"
403360
let accessToken = "shpat_test_token"
404361

405-
shopifyCheckoutSheetKit.configureAcceleratedCheckouts(
362+
let resolved = shopifyCheckoutSheetKit.configureAcceleratedCheckouts(
406363
storefrontDomain,
407364
storefrontAccessToken: accessToken,
408365
customerEmail: nil,
409366
customerPhoneNumber: nil,
410367
customerAccessToken: nil,
411368
applePayMerchantIdentifier: "merchant.com.shopify.reactnative.tests",
412369
applyPayContactFields: ["email", "not_a_field"],
413-
supportedShippingCountries: [],
414-
resolve: { value in
415-
resolved = (value as? Bool) ?? true
416-
expectation.fulfill()
417-
},
418-
reject: { _, _, _ in }
419-
)
420-
421-
wait(for: [expectation], timeout: 2)
370+
supportedShippingCountries: []
371+
).boolValue
372+
422373
XCTAssertEqual(resolved, false)
423374
}
424375
}

sample/ios/ReactNativeTests/AcceleratedCheckouts_UnsupportedTests.swift

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,7 @@ class AcceleratedCheckouts_UnsupportedTests: XCTestCase {
4848
}
4949

5050
func testAvailabilityAPIsReturnFalseOnPreIOS16() throws {
51-
let accelExpectation = expectation(description: "isAcceleratedCheckoutAvailable false on <16")
52-
module.isAcceleratedCheckoutAvailable({ value in
53-
XCTAssertEqual(value as? Bool, false)
54-
accelExpectation.fulfill()
55-
}, reject: { _, _, _ in })
56-
57-
let applePayExpectation = expectation(description: "isApplePayAvailable false on <16")
58-
module.isApplePayAvailable({ value in
59-
XCTAssertEqual(value as? Bool, false)
60-
applePayExpectation.fulfill()
61-
}, reject: { _, _, _ in })
62-
63-
wait(for: [accelExpectation, applePayExpectation], timeout: 2)
51+
XCTAssertEqual(module.isAcceleratedCheckoutAvailable().boolValue, false)
52+
XCTAssertEqual(module.isApplePayAvailable().boolValue, false)
6453
}
6554
}

sample/ios/ReactNativeTests/ShopifyCheckoutSheetKitTests.swift

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@ class ShopifyCheckoutSheetKitTests: XCTestCase {
5454
/// getConfig
5555
func testReturnsDefaultConfig() {
5656
// Call getConfig and capture the result
57-
var result: [String: Any]?
58-
shopifyCheckoutSheetKit.getConfig({ config in result = config as? [String: Any] }, reject: { _, _, _ in })
57+
let result = shopifyCheckoutSheetKit.getConfig() as? [String: Any]
5958

6059
// Verify that getConfig returned the expected result
6160
XCTAssertEqual(result?["preloading"] as? Bool, true)
@@ -165,7 +164,7 @@ class ShopifyCheckoutSheetKitTests: XCTestCase {
165164

166165
// Call getConfig and capture the result
167166
var result: [String: Any]?
168-
shopifyCheckoutSheetKit.getConfig({ config in result = config as? [String: Any] }, reject: { _, _, _ in })
167+
result = shopifyCheckoutSheetKit.getConfig() as? [String: Any]
169168

170169
// Verify that getConfig returned the close button color
171170
XCTAssertNotNil(result?["closeButtonColor"])
@@ -260,14 +259,14 @@ class ShopifyCheckoutSheetKitTests: XCTestCase {
260259
shopifyCheckoutSheetKit.setConfig(configuration)
261260

262261
var result: [String: Any]?
263-
shopifyCheckoutSheetKit.getConfig({ config in result = config as? [String: Any] }, reject: { _, _, _ in })
262+
result = shopifyCheckoutSheetKit.getConfig() as? [String: Any]
264263

265264
XCTAssertEqual(result?["logLevel"] as? String, "debug")
266265
}
267266

268267
func testGetConfigReturnsDefaultLogLevel() {
269268
var result: [String: Any]?
270-
shopifyCheckoutSheetKit.getConfig({ config in result = config as? [String: Any] }, reject: { _, _, _ in })
269+
result = shopifyCheckoutSheetKit.getConfig() as? [String: Any]
271270

272271
XCTAssertEqual(result?["logLevel"] as? String, "error")
273272
}
@@ -279,7 +278,7 @@ class ShopifyCheckoutSheetKitTests: XCTestCase {
279278
shopifyCheckoutSheetKit.setConfig(configuration)
280279

281280
var result: [String: Any]?
282-
shopifyCheckoutSheetKit.getConfig({ config in result = config as? [String: Any] }, reject: { _, _, _ in })
281+
result = shopifyCheckoutSheetKit.getConfig() as? [String: Any]
283282

284283
XCTAssertEqual(result?["logLevel"] as? String, "debug")
285284
}
@@ -291,7 +290,7 @@ class ShopifyCheckoutSheetKitTests: XCTestCase {
291290
shopifyCheckoutSheetKit.setConfig(configuration)
292291

293292
var result: [String: Any]?
294-
shopifyCheckoutSheetKit.getConfig({ config in result = config as? [String: Any] }, reject: { _, _, _ in })
293+
result = shopifyCheckoutSheetKit.getConfig() as? [String: Any]
295294

296295
XCTAssertEqual(result?["logLevel"] as? String, "error")
297296
}
@@ -303,7 +302,7 @@ class ShopifyCheckoutSheetKitTests: XCTestCase {
303302
shopifyCheckoutSheetKit.setConfig(configuration)
304303

305304
var result: [String: Any]?
306-
shopifyCheckoutSheetKit.getConfig({ config in result = config as? [String: Any] }, reject: { _, _, _ in })
305+
result = shopifyCheckoutSheetKit.getConfig() as? [String: Any]
307306

308307
XCTAssertEqual(result?["logLevel"] as? String, "error")
309308
}
@@ -315,7 +314,7 @@ class ShopifyCheckoutSheetKitTests: XCTestCase {
315314
shopifyCheckoutSheetKit.setConfig(configuration)
316315

317316
var result: [String: Any]?
318-
shopifyCheckoutSheetKit.getConfig({ config in result = config as? [String: Any] }, reject: { _, _, _ in })
317+
result = shopifyCheckoutSheetKit.getConfig() as? [String: Any]
319318

320319
XCTAssertEqual(result?["logLevel"] as? String, "error")
321320
}

0 commit comments

Comments
 (0)