Skip to content

Commit 6062c18

Browse files
Updated the unit tests
1 parent 38a4b94 commit 6062c18

3 files changed

Lines changed: 17 additions & 18 deletions

File tree

Tests/PaystackSDKTests/API/Charge/ChargeTests.swift

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,6 @@ final class ChargeTests: PSTestCase {
1919

2020
// TODO: testAuthenticateChargeWithPhoneAuthentication
2121

22-
func testMobileMoneyCharge() throws {
23-
let mobileMoneyRequestBody = MobileMoneyChargeRequest(channelName: "MOBILE_MONEY_1504248187", phone: "0723362418", transaction: "1504248187", provider: "MPESA")
24-
25-
mockServiceExecutor
26-
.expectURL("https://api.paystack.co/charge/mobile_money")
27-
.expectMethod(.post)
28-
.expectHeader("Authorization", "Bearer \(apiKey)")
29-
.expectBody(mobileMoneyRequestBody)
30-
.andReturn(json: "ChargeMobileMoneyResponse")
31-
32-
let mobileMoneyData = MobileMoneyData(phone: "0723362418", transaction: "1504248187", provider: "MPESA")
33-
34-
_ = try serviceUnderTest.chargeMobileMoney(with: mobileMoneyData).sync()
35-
}
36-
3722
func testAuthenticateChargeWithPhoneAuthentication() throws {
3823
let phoneRequestBody = SubmitPhoneRequest(phone: "0111234567", accessCode: "abcde")
3924
// TODO: Add Test for testAuthenticateChargeWithBirthdayAuthentication

Tests/PaystackSDKTests/UI/Charge/ChargeRepositoryImplementationTests.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,19 @@ final class ChargeRepositoryImplementationTests: PSTestCase {
2323
.andReturn(json: "VerifyAccessCode")
2424

2525
let result = try await serviceUnderTest.verifyAccessCode("access_code_test")
26+
let phoneNumberRegex = "^\\+254(7([0-2]\\d|4\\d|5(7|8|9)|6(8|9)|9[0-9])|(11\\d))\\d{6}$"
2627
let expectedResult = VerifyAccessCode(amount: 10000,
2728
currency: "NGN",
2829
accessCode: "Access_Code_Test",
2930
paymentChannels: [.card, .qr, .ussd, .mobileMoney],
3031
domain: .test,
3132
merchantName: "Test Merchant",
3233
publicEncryptionKey: "test_encryption_key",
33-
reference: "203520101", channelOptions: PaystackUI.ChannelOptions(mobileMoney: nil))
34+
reference: "203520101",
35+
channelOptions: PaystackUI.ChannelOptions(mobileMoney: [
36+
.init(key: "MPESA", value: "M-PESA", isNew: true, phoneNumberRegex: phoneNumberRegex),
37+
.init(key: "MPESA_OFF", value: "M-PESA", isNew: false, phoneNumberRegex: phoneNumberRegex)
38+
]))
3439

3540
XCTAssertEqual(result, expectedResult)
3641
}

Tests/PaystackSDKTests/UI/Charge/ChargeViewModelTests.swift

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,19 @@ final class ChargeViewModelTests: PSTestCase {
1313
}
1414

1515
func testVerifyAccessCodeSetsViewStateAsCardDetailsWhenSuccessful() async {
16-
mockRepo.expectedVerifyAccessCode = .example
16+
let cardOnlyAccessCode = VerifyAccessCode(amount: 10000,
17+
currency: "USD",
18+
accessCode: "test_access",
19+
paymentChannels: [.card],
20+
domain: .test,
21+
merchantName: "Test Merchant",
22+
publicEncryptionKey: "test_encryption_key",
23+
reference: "test_reference",
24+
channelOptions: nil)
25+
mockRepo.expectedVerifyAccessCode = cardOnlyAccessCode
1726
await serviceUnderTest.verifyAccessCodeAndProceedWithCard()
1827
XCTAssertEqual(serviceUnderTest.transactionState,
19-
.payment(type: .card(transactionInformation: .example)))
28+
.payment(type: .card(transactionInformation: cardOnlyAccessCode)))
2029
}
2130

2231
func testVerifyAccessCodeSetsViewStateAsErrorWhenUnsuccessful() async {

0 commit comments

Comments
 (0)