@@ -3312,6 +3312,45 @@ final class EditableOrderViewModelTests: XCTestCase {
33123312 assertEqual ( customerData. billing, orderToUpdate. billingAddress)
33133313 assertEqual ( customerData. shipping, orderToUpdate. shippingAddress)
33143314 }
3315+
3316+ func test_canBeDismissed_whenEditing_withNoChanges_returnsTrue( ) {
3317+ // Given
3318+ let initialOrder = Order . fake ( )
3319+ let viewModel = EditableOrderViewModel ( siteID: 123 , flow: . editing( initialOrder: initialOrder) )
3320+
3321+ // When
3322+ viewModel. selectionSyncApproach = . onRecalculateButtonTap
3323+ viewModel. syncRequired = false
3324+
3325+ // Then
3326+ XCTAssertTrue ( viewModel. canBeDismissed)
3327+ }
3328+
3329+ func test_canBeDismissed_whenEditing_withPendingRecalculation_returnsFalse( ) {
3330+ // Given
3331+ let initialOrder = Order . fake ( )
3332+ let viewModel = EditableOrderViewModel ( siteID: 123 , flow: . editing( initialOrder: initialOrder) )
3333+
3334+ // When
3335+ viewModel. selectionSyncApproach = . onRecalculateButtonTap
3336+ viewModel. syncRequired = true
3337+
3338+ // Then
3339+ XCTAssertFalse ( viewModel. canBeDismissed)
3340+ }
3341+
3342+ func test_canBeDismissed_whenEditing_withImmediateSync_returnsTrue( ) {
3343+ // Given
3344+ let initialOrder = Order . fake ( )
3345+ let viewModel = EditableOrderViewModel ( siteID: 123 , flow: . editing( initialOrder: initialOrder) )
3346+
3347+ // When
3348+ viewModel. selectionSyncApproach = . immediate
3349+ viewModel. syncRequired = true
3350+
3351+ // Then
3352+ XCTAssertTrue ( viewModel. canBeDismissed)
3353+ }
33153354}
33163355
33173356private extension EditableOrderViewModelTests {
0 commit comments