Skip to content

Commit 413c56c

Browse files
authored
Merge pull request #7354 from woocommerce/add/ui-test-for-order-edit-flow
[Unified Order Editing] Add basic UI test for editing flow
2 parents adb18fc + 9f00d0e commit 413c56c

File tree

13 files changed

+108
-43
lines changed

13 files changed

+108
-43
lines changed

WooCommerce/Classes/ViewRelated/Orders/Order Creation/OrderForm.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ struct OrderForm: View {
171171
viewModel.finishEditing()
172172
dismissHandler()
173173
}
174+
.accessibilityIdentifier(Accessibility.doneButtonIdentifier)
174175
case .loading:
175176
ProgressView()
176177
}
@@ -316,6 +317,7 @@ private extension OrderForm {
316317
enum Accessibility {
317318
static let createButtonIdentifier = "new-order-create-button"
318319
static let cancelButtonIdentifier = "new-order-cancel-button"
320+
static let doneButtonIdentifier = "edit-order-done-button"
319321
static let addProductButtonIdentifier = "new-order-add-product-button"
320322
}
321323
}

WooCommerce/Classes/ViewRelated/Orders/Order Details/OrderDetailsViewController.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ private extension OrderDetailsViewController {
138138
style: .plain,
139139
target: self,
140140
action: #selector(editOrder))
141+
editButton.accessibilityIdentifier = "order-details-edit-button"
141142
editButton.isEnabled = viewModel.editButtonIsEnabled
142143
if ServiceLocator.featureFlagService.isFeatureFlagEnabled(FeatureFlag.unifiedOrderEditing) {
143144
navigationItem.rightBarButtonItem = editButton

WooCommerce/UITestsFoundation/Screens/Orders/AddFeeScreen.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ public final class AddFeeScreen: ScreenObject {
3232
}
3333

3434
/// Confirms entered fee and closes Add Fee screen.
35-
/// - Returns: New Order screen object.
35+
/// - Returns: Unified Order screen object.
3636
@discardableResult
37-
public func confirmFee() throws -> NewOrderScreen {
37+
public func confirmFee() throws -> UnifiedOrderScreen {
3838
doneButton.tap()
39-
return try NewOrderScreen()
39+
return try UnifiedOrderScreen()
4040
}
4141
}

WooCommerce/UITestsFoundation/Screens/Orders/AddProductScreen.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ public final class AddProductScreen: ScreenObject {
1515
}
1616

1717
/// Selects a product from the list.
18-
/// - Returns: New Order screen object.
18+
/// - Returns: Unified Order screen object.
1919
@discardableResult
20-
public func selectProduct(byName name: String) throws -> NewOrderScreen {
20+
public func selectProduct(byName name: String) throws -> UnifiedOrderScreen {
2121
app.buttons.staticTexts[name].tap()
22-
return try NewOrderScreen()
22+
return try UnifiedOrderScreen()
2323
}
2424
}

WooCommerce/UITestsFoundation/Screens/Orders/AddShippingScreen.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ public final class AddShippingScreen: ScreenObject {
4747
}
4848

4949
/// Confirms entered shipping details and closes Add Shipping screen.
50-
/// - Returns: New Order screen object.
50+
/// - Returns: Unified Order screen object.
5151
@discardableResult
52-
public func confirmShippingDetails() throws -> NewOrderScreen {
52+
public func confirmShippingDetails() throws -> UnifiedOrderScreen {
5353
doneButton.tap()
54-
return try NewOrderScreen()
54+
return try UnifiedOrderScreen()
5555
}
5656
}

WooCommerce/UITestsFoundation/Screens/Orders/CustomerDetailsScreen.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@ public final class CustomerDetailsScreen: ScreenObject {
3636
}
3737

3838
/// Updates the order with minimal customer details.
39-
/// - Returns: New Order screen object.
39+
/// - Returns: Unified Order screen object.
4040
@discardableResult
41-
public func enterCustomerDetails(name: String) throws -> NewOrderScreen {
41+
public func enterCustomerDetails(name: String) throws -> UnifiedOrderScreen {
4242
billingFirstNameField.tap()
4343
billingFirstNameField.typeText(name)
4444
addressToggle.tap()
4545
shippingFirstNameField.tap()
4646
shippingFirstNameField.typeText(name)
4747
doneButton.tap()
48-
return try NewOrderScreen()
48+
return try UnifiedOrderScreen()
4949
}
5050
}

WooCommerce/UITestsFoundation/Screens/Orders/CustomerNoteScreen.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ public final class CustomerNoteScreen: ScreenObject {
3232
}
3333

3434
/// Confirms entered note and closes Customer Note screen.
35-
/// - Returns: New Order screen object.
35+
/// - Returns: Unified Order screen object.
3636
@discardableResult
37-
public func confirmNote() throws -> NewOrderScreen {
37+
public func confirmNote() throws -> UnifiedOrderScreen {
3838
doneButton.tap()
39-
return try NewOrderScreen()
39+
return try UnifiedOrderScreen()
4040
}
4141
}

WooCommerce/UITestsFoundation/Screens/Orders/OrderStatusScreen.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ public final class OrderStatusScreen: ScreenObject {
2121
/// Selects a new order status from the list.
2222
/// - Returns: Order Status screen object (self).
2323
@discardableResult
24-
public func selectOrderStatus(atIndex index: Int) throws -> NewOrderScreen {
24+
public func selectOrderStatus(atIndex index: Int) throws -> UnifiedOrderScreen {
2525
orderStatusTable.cells.element(boundBy: index).tap()
26-
return try NewOrderScreen()
26+
return try UnifiedOrderScreen()
2727
}
2828
}

WooCommerce/UITestsFoundation/Screens/Orders/OrdersScreen.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,11 @@ public final class OrdersScreen: ScreenObject {
8181
}
8282

8383
/// Starts the order creation flow by navigating from the Orders screen to the New Order screen.
84-
/// - Returns: New Order screen object.
84+
/// - Returns: Unified Order screen object.
8585
@discardableResult
86-
public func startOrderCreation() throws -> NewOrderScreen {
86+
public func startOrderCreation() throws -> UnifiedOrderScreen {
8787
createButton.tap()
8888
newOrderButton.tap()
89-
return try NewOrderScreen()
89+
return try UnifiedOrderScreen()
9090
}
9191
}

WooCommerce/UITestsFoundation/Screens/Orders/SingleOrderScreen.swift

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,25 @@ public final class SingleOrderScreen: ScreenObject {
66
// TODO: Remove force `try` once `ScreenObject` migration is completed
77
let tabBar = try! TabNavComponent()
88

9+
private let editOrderButtonGetter: (XCUIApplication) -> XCUIElement = {
10+
$0.buttons["order-details-edit-button"]
11+
}
12+
13+
private let summaryCellGetter: (XCUIApplication) -> XCUIElement = {
14+
$0.staticTexts["summary-table-view-cell-title-label"]
15+
}
16+
917
private let collectPaymentButtonGetter: (XCUIApplication) -> XCUIElement = {
1018
$0.buttons["order-details-collect-payment-button"]
1119
}
1220

21+
private var editOrderButton: XCUIElement { editOrderButtonGetter(app) }
22+
1323
private var collectPaymentButton: XCUIElement { collectPaymentButtonGetter(app) }
1424

1525
public init(app: XCUIApplication = XCUIApplication()) throws {
1626
try super.init(
17-
expectedElementGetters: [ { $0.staticTexts["summary-table-view-cell-title-label"]} ],
27+
expectedElementGetters: [ summaryCellGetter ],
1828
app: app
1929
)
2030
}
@@ -63,4 +73,10 @@ public final class SingleOrderScreen: ScreenObject {
6373
pop()
6474
return try OrdersScreen()
6575
}
76+
77+
@discardableResult
78+
public func tapEditOrderButton() throws -> UnifiedOrderScreen {
79+
editOrderButton.tap()
80+
return try UnifiedOrderScreen(flow: .editing)
81+
}
6682
}

0 commit comments

Comments
 (0)