Skip to content

Commit c423924

Browse files
committed
Update min ver; make enums in test more expressive
1 parent e67b78f commit c423924

File tree

2 files changed

+26
-22
lines changed

2 files changed

+26
-22
lines changed

WooCommerce/Classes/ViewRelated/Dashboard/Settings/In-Person Payments/CardPresentPaymentsOnboardingUseCase.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,10 @@ private extension CardPresentPaymentsOnboardingUseCase {
197197
}
198198

199199
func isWCPayVersionSupported(plugin: SystemPlugin) -> Bool {
200+
/// NOTE: It does feel a bit risky to be using .numeric here since Apple documentation say it treats
201+
/// the string as a number, so decimal numbers with extra decimals (like versions with patches M.m.p)
202+
/// wouldn't necessarily be expected to be compared correctly, but it does seem to work.
203+
/// TODO: Implement / source a comparator that explicitly supports version strings with patches.
200204
plugin.version.compare(Constants.supportedWCPayVersion, options: .numeric) != .orderedAscending
201205
}
202206

@@ -265,6 +269,6 @@ private extension PaymentGatewayAccount {
265269

266270
private enum Constants {
267271
static let pluginName = "WooCommerce Payments"
268-
static let supportedWCPayVersion = "3.1"
272+
static let supportedWCPayVersion = "3.2.1"
269273
static let supportedCountryCodes = ["US"]
270274
}

WooCommerce/WooCommerceTests/ViewRelated/CardPresentPayments/CardPresentPaymentsOnboardingUseCaseTests.swift

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
7272
func test_onboarding_returns_wcpay_not_activated_when_wcpay_installed_but_not_active() {
7373
// Given
7474
setupCountry(country: .us)
75-
setupPlugin(status: .inactive, version: .supported)
75+
setupPlugin(status: .inactive, version: .minimumSupportedVersionWithPatch)
7676

7777
// When
7878
let useCase = CardPresentPaymentsOnboardingUseCase(storageManager: storageManager, stores: stores)
@@ -95,10 +95,10 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
9595
XCTAssertEqual(state, .wcpayUnsupportedVersion)
9696
}
9797

98-
func test_onboarding_returns_complete_when_supported_exact() {
98+
func test_onboarding_returns_complete_when_plugin_version_has_newer_patch_release() {
9999
// Given
100100
setupCountry(country: .us)
101-
setupPlugin(status: .networkActive, version: .supportedExact)
101+
setupPlugin(status: .networkActive, version: .supportedVersionWithNewerPatch)
102102
setupPaymentGatewayAccount(status: .complete)
103103

104104
// When
@@ -112,7 +112,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
112112
func test_onboarding_returns_complete_when_active() {
113113
// Given
114114
setupCountry(country: .us)
115-
setupPlugin(status: .networkActive, version: .supported)
115+
setupPlugin(status: .networkActive, version: .minimumSupportedVersionWithPatch)
116116
setupPaymentGatewayAccount(status: .complete)
117117

118118
// When
@@ -126,7 +126,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
126126
func test_onboarding_returns_complete_when_network_active() {
127127
// Given
128128
setupCountry(country: .us)
129-
setupPlugin(status: .networkActive, version: .supported)
129+
setupPlugin(status: .networkActive, version: .minimumSupportedVersionWithPatch)
130130
setupPaymentGatewayAccount(status: .complete)
131131

132132
// When
@@ -142,7 +142,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
142142
func test_onboarding_returns_generic_error_with_no_account() {
143143
// Given
144144
setupCountry(country: .us)
145-
setupPlugin(status: .active, version: .supported)
145+
setupPlugin(status: .active, version: .minimumSupportedVersionWithPatch)
146146

147147
// When
148148
let useCase = CardPresentPaymentsOnboardingUseCase(storageManager: storageManager, stores: stores)
@@ -155,7 +155,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
155155
func test_onboarding_returns_generic_error_when_account_is_not_eligible() {
156156
// Given
157157
setupCountry(country: .us)
158-
setupPlugin(status: .active, version: .supported)
158+
setupPlugin(status: .active, version: .minimumSupportedVersionWithPatch)
159159
setupPaymentGatewayAccount(status: .complete, isCardPresentEligible: false)
160160

161161
// When
@@ -169,7 +169,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
169169
func test_onboarding_returns_not_completed_when_account_is_not_connected() {
170170
// Given
171171
setupCountry(country: .us)
172-
setupPlugin(status: .active, version: .supported)
172+
setupPlugin(status: .active, version: .minimumSupportedVersionWithPatch)
173173
setupPaymentGatewayAccount(status: .noAccount)
174174

175175
// When
@@ -183,7 +183,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
183183
func test_onboarding_returns_pending_requirements_when_account_is_restricted_with_pending_requirements() {
184184
// Given
185185
setupCountry(country: .us)
186-
setupPlugin(status: .active, version: .supported)
186+
setupPlugin(status: .active, version: .minimumSupportedVersionWithPatch)
187187
setupPaymentGatewayAccount(status: .restricted, hasPendingRequirements: true)
188188

189189
// When
@@ -197,7 +197,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
197197
func test_onboarding_returns_pending_requirements_when_account_is_restricted_soon_with_pending_requirements() {
198198
// Given
199199
setupCountry(country: .us)
200-
setupPlugin(status: .active, version: .supported)
200+
setupPlugin(status: .active, version: .minimumSupportedVersionWithPatch)
201201
setupPaymentGatewayAccount(status: .restrictedSoon, hasPendingRequirements: true)
202202

203203
// When
@@ -211,7 +211,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
211211
func test_onboarding_returns_overdue_requirements_when_account_is_restricted_with_overdue_requirements() {
212212
// Given
213213
setupCountry(country: .us)
214-
setupPlugin(status: .active, version: .supported)
214+
setupPlugin(status: .active, version: .minimumSupportedVersionWithPatch)
215215
setupPaymentGatewayAccount(status: .restricted, hasOverdueRequirements: true)
216216

217217
// When
@@ -225,7 +225,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
225225
func test_onboarding_returns_overdue_requirements_when_account_is_restricted_with_overdue_and_pending_requirements() {
226226
// Given
227227
setupCountry(country: .us)
228-
setupPlugin(status: .active, version: .supported)
228+
setupPlugin(status: .active, version: .minimumSupportedVersionWithPatch)
229229
setupPaymentGatewayAccount(status: .restricted, hasPendingRequirements: true, hasOverdueRequirements: true)
230230

231231
// When
@@ -239,7 +239,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
239239
func test_onboarding_returns_review_when_account_is_restricted_with_no_requirements() {
240240
// Given
241241
setupCountry(country: .us)
242-
setupPlugin(status: .active, version: .supported)
242+
setupPlugin(status: .active, version: .minimumSupportedVersionWithPatch)
243243
setupPaymentGatewayAccount(status: .restricted)
244244

245245
// When
@@ -254,7 +254,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
254254
func test_onboarding_returns_rejected_when_account_is_rejected_for_fraud() {
255255
// Given
256256
setupCountry(country: .us)
257-
setupPlugin(status: .active, version: .supported)
257+
setupPlugin(status: .active, version: .minimumSupportedVersionWithPatch)
258258
setupPaymentGatewayAccount(status: .rejectedFraud)
259259

260260
// When
@@ -268,7 +268,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
268268
func test_onboarding_returns_rejected_when_account_is_rejected_for_tos() {
269269
// Given
270270
setupCountry(country: .us)
271-
setupPlugin(status: .active, version: .supported)
271+
setupPlugin(status: .active, version: .minimumSupportedVersionWithPatch)
272272
setupPaymentGatewayAccount(status: .rejectedTermsOfService)
273273

274274
// When
@@ -282,7 +282,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
282282
func test_onboarding_returns_rejected_when_account_is_listed() {
283283
// Given
284284
setupCountry(country: .us)
285-
setupPlugin(status: .active, version: .supported)
285+
setupPlugin(status: .active, version: .minimumSupportedVersionWithPatch)
286286
setupPaymentGatewayAccount(status: .rejectedListed)
287287

288288
// When
@@ -296,7 +296,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
296296
func test_onboarding_returns_rejected_when_account_is_rejected_for_other_reasons() {
297297
// Given
298298
setupCountry(country: .us)
299-
setupPlugin(status: .active, version: .supported)
299+
setupPlugin(status: .active, version: .minimumSupportedVersionWithPatch)
300300
setupPaymentGatewayAccount(status: .rejectedOther)
301301

302302
// When
@@ -310,7 +310,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
310310
func test_onboarding_returns_generic_error_when_account_status_unknown() {
311311
// Given
312312
setupCountry(country: .us)
313-
setupPlugin(status: .active, version: .supported)
313+
setupPlugin(status: .active, version: .minimumSupportedVersionWithPatch)
314314
setupPaymentGatewayAccount(status: .unknown)
315315

316316
// When
@@ -324,7 +324,7 @@ class CardPresentPaymentsOnboardingUseCaseTests: XCTestCase {
324324
func test_onboarding_returns_complete_when_account_is_setup_successfully() {
325325
// Given
326326
setupCountry(country: .us)
327-
setupPlugin(status: .active, version: .supported)
327+
setupPlugin(status: .active, version: .minimumSupportedVersionWithPatch)
328328
setupPaymentGatewayAccount(status: .complete)
329329

330330
// When
@@ -374,8 +374,8 @@ private extension CardPresentPaymentsOnboardingUseCaseTests {
374374
}
375375

376376
enum PluginVersion: String {
377-
case supported = "3.1.1"
378-
case supportedExact = "3.1"
377+
case minimumSupportedVersionWithPatch = "3.2.1"
378+
case supportedVersionWithNewerPatch = "3.2.5"
379379
case unsupported = "2.4.2"
380380
}
381381
}

0 commit comments

Comments
 (0)