Skip to content

Commit b15aa70

Browse files
adborbasclaude
andcommitted
Fix ViewModel premature deallocation in step update tests
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent aac8df8 commit b15aa70

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

WooCommerce/WooCommerceTests/ViewRelated/JetpackSetup/WPComLogin/WPComConnectionSetup/WPComConnectionSetupViewModelTests.swift

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -228,32 +228,35 @@ final class WPComConnectionSetupViewModelTests: XCTestCase {
228228
do {
229229
let provider = MockAnalyticsProvider()
230230
let analytics = WooAnalytics(analyticsProvider: provider)
231-
let _ = makeViewModel(analytics: analytics)
232-
233-
mockHandler.simulateStepUpdate(.connect, status: .success)
231+
let viewModel = makeViewModel(analytics: analytics)
232+
withExtendedLifetime(viewModel) {
233+
mockHandler.simulateStepUpdate(.connect, status: .success)
234234

235-
assertEqual(provider, eventName: "push_notifications_setup_flow_success", property: "step", expected: "connect_wpcom")
235+
assertEqual(provider, eventName: "push_notifications_setup_flow_success", property: "step", expected: "connect_wpcom")
236+
}
236237
}
237238

238239
do {
239240
let provider = MockAnalyticsProvider()
240241
let analytics = WooAnalytics(analyticsProvider: provider)
241-
let _ = makeViewModel(analytics: analytics)
242-
243-
mockHandler.simulateStepUpdate(.enablePush, status: .success)
242+
let viewModel = makeViewModel(analytics: analytics)
243+
withExtendedLifetime(viewModel) {
244+
mockHandler.simulateStepUpdate(.enablePush, status: .success)
244245

245-
assertEqual(provider, eventName: "push_notifications_setup_flow_success", property: "step", expected: "enable_push_notifications")
246+
assertEqual(provider, eventName: "push_notifications_setup_flow_success", property: "step", expected: "enable_push_notifications")
247+
}
246248
}
247249

248250
// When step fails, then tracks flow_error with correct step
249251
do {
250252
let provider = MockAnalyticsProvider()
251253
let analytics = WooAnalytics(analyticsProvider: provider)
252-
let _ = makeViewModel(analytics: analytics)
253-
254-
mockHandler.simulateStepUpdate(.checkPlugin, status: .failure(error: .generic(reason: "Network error")))
254+
let viewModel = makeViewModel(analytics: analytics)
255+
withExtendedLifetime(viewModel) {
256+
mockHandler.simulateStepUpdate(.checkPlugin, status: .failure(error: .generic(reason: "Network error")))
255257

256-
assertEqual(provider, eventName: "push_notifications_setup_flow_error", property: "step", expected: "plugin_compatibility")
258+
assertEqual(provider, eventName: "push_notifications_setup_flow_error", property: "step", expected: "plugin_compatibility")
259+
}
257260
}
258261
}
259262

0 commit comments

Comments
 (0)