Skip to content

Commit 256bc9b

Browse files
committed
Adds screen object for ShippingLineDetails
1 parent d3c84c4 commit 256bc9b

File tree

3 files changed

+63
-0
lines changed

3 files changed

+63
-0
lines changed

WooCommerce/Classes/ViewRelated/Orders/Order Creation/PaymentSection/ShippingLineDetails.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ struct ShippingLineDetails: View {
3737
.onTapGesture {
3838
focusAmountInput = true
3939
}
40+
.accessibilityIdentifier("add-shipping-amount-field")
4041
}
4142
}
4243
.frame(minHeight: Layout.amountRowHeight)
@@ -50,6 +51,7 @@ struct ShippingLineDetails: View {
5051
text: $viewModel.methodTitle,
5152
symbol: nil,
5253
keyboardType: .default)
54+
.accessibilityIdentifier("add-shipping-name-field")
5355
}
5456
.padding(.horizontal, insets: safeAreaInsets)
5557
.addingTopAndBottomDividers()
@@ -90,6 +92,7 @@ struct ShippingLineDetails: View {
9092
presentation.wrappedValue.dismiss()
9193
}
9294
.disabled(viewModel.shouldDisableDoneButton)
95+
.accessibilityIdentifier("add-shipping-done-button")
9396
}
9497
}
9598
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import ScreenObject
2+
import XCTest
3+
4+
public final class AddShippingScreen: ScreenObject {
5+
6+
private let shippingAmountGetter: (XCUIApplication) -> XCUIElement = {
7+
$0.textFields["add-shipping-amount-field"]
8+
}
9+
10+
private let shippingNameGetter: (XCUIApplication) -> XCUIElement = {
11+
$0.textFields["add-shipping-name-field"]
12+
}
13+
14+
private let doneButtonGetter: (XCUIApplication) -> XCUIElement = {
15+
$0.buttons["add-shipping-done-button"]
16+
}
17+
18+
private var shippingAmountField: XCUIElement { shippingAmountGetter(app) }
19+
20+
private var shippingNameField: XCUIElement { shippingNameGetter(app) }
21+
22+
private var doneButton: XCUIElement { doneButtonGetter(app) }
23+
24+
init(app: XCUIApplication = XCUIApplication()) throws {
25+
try super.init(
26+
expectedElementGetters: [ shippingAmountGetter ],
27+
app: app
28+
)
29+
}
30+
31+
/// Enters a shipping amount.
32+
/// - Returns: Add Shipping screen object.
33+
@discardableResult
34+
public func enterShippingAmount(_ amount: String) throws -> Self {
35+
shippingAmountField.tap()
36+
shippingAmountField.typeText(amount)
37+
return self
38+
}
39+
40+
/// Enters a shipping name.
41+
/// - Returns: Add Shipping screen object.
42+
@discardableResult
43+
public func enterShippingName(_ name: String) throws -> Self {
44+
shippingNameField.tap()
45+
shippingNameField.typeText(name)
46+
return self
47+
}
48+
49+
/// Confirms entered shipping details and closes Add Shipping screen.
50+
/// - Returns: New Order screen object.
51+
@discardableResult
52+
public func confirmShippingDetails() throws -> NewOrderScreen {
53+
doneButton.tap()
54+
return try NewOrderScreen()
55+
}
56+
}

WooCommerce/WooCommerce.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1283,6 +1283,7 @@
12831283
CC666F2627F359590045AF1E /* OrdersTopBannerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC666F2527F359590045AF1E /* OrdersTopBannerFactory.swift */; };
12841284
CC69236226010946002FB669 /* LoginProloguePages.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC69236126010946002FB669 /* LoginProloguePages.swift */; };
12851285
CC6923AC26010D8D002FB669 /* LoginProloguePageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC6923AB26010D8D002FB669 /* LoginProloguePageViewController.swift */; };
1286+
CC71353B2862285300A28B42 /* AddShippingScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC71353A2862285300A28B42 /* AddShippingScreen.swift */; };
12861287
CC72BB6427BD842500837876 /* DisclosureIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC72BB6327BD842500837876 /* DisclosureIndicator.swift */; };
12871288
CC770C8A27B1497700CE6ABC /* SearchHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC770C8927B1497700CE6ABC /* SearchHeader.swift */; };
12881289
CC77488E2719A07D0043CDD7 /* ShippingLabelAddressTopBannerFactoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC77488D2719A07D0043CDD7 /* ShippingLabelAddressTopBannerFactoryTests.swift */; };
@@ -3054,6 +3055,7 @@
30543055
CC666F2527F359590045AF1E /* OrdersTopBannerFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrdersTopBannerFactory.swift; sourceTree = "<group>"; };
30553056
CC69236126010946002FB669 /* LoginProloguePages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginProloguePages.swift; sourceTree = "<group>"; };
30563057
CC6923AB26010D8D002FB669 /* LoginProloguePageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginProloguePageViewController.swift; sourceTree = "<group>"; };
3058+
CC71353A2862285300A28B42 /* AddShippingScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddShippingScreen.swift; sourceTree = "<group>"; };
30573059
CC72BB6327BD842500837876 /* DisclosureIndicator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisclosureIndicator.swift; sourceTree = "<group>"; };
30583060
CC770C8927B1497700CE6ABC /* SearchHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchHeader.swift; sourceTree = "<group>"; };
30593061
CC77488D2719A07D0043CDD7 /* ShippingLabelAddressTopBannerFactoryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShippingLabelAddressTopBannerFactoryTests.swift; sourceTree = "<group>"; };
@@ -8073,6 +8075,7 @@
80738075
F997173C23DBFBBF00592D8E /* OrderSearchScreen.swift */,
80748076
CC1AB56727FC5821003DEF43 /* OrderStatusScreen.swift */,
80758077
C044961228058FE8003B3081 /* AddProductScreen.swift */,
8078+
CC71353A2862285300A28B42 /* AddShippingScreen.swift */,
80768079
);
80778080
path = Orders;
80788081
sourceTree = "<group>";
@@ -8779,6 +8782,7 @@
87798782
3FF314EA26FC751B0012E68E /* XCTest+Extensions.swift in Sources */,
87808783
3F0CF3002704490A00EF3D71 /* OrderSearchScreen.swift in Sources */,
87818784
3F0CF3012704490A00EF3D71 /* ReviewsScreen.swift in Sources */,
8785+
CC71353B2862285300A28B42 /* AddShippingScreen.swift in Sources */,
87828786
3F0CF30A2704490A00EF3D71 /* OrdersScreen.swift in Sources */,
87838787
C044961328058FE8003B3081 /* AddProductScreen.swift in Sources */,
87848788
3F0CF3132704490A00EF3D71 /* PrologueScreen.swift in Sources */,

0 commit comments

Comments
 (0)