11import ScreenObject
22import XCTest
33
4- // periphery:ignore:all
54public final class TabNavComponent : ScreenObject {
6-
5+ // periphery:ignore
76 private let myStoreTabButtonGetter : ( XCUIApplication ) -> XCUIElement = {
87 $0. tabBars. firstMatch. buttons [ " tab-bar-my-store-item " ]
98 }
10-
9+ // periphery:ignore
1110 private let ordersTabButtonGetter : ( XCUIApplication ) -> XCUIElement = {
1211 $0. tabBars. firstMatch. buttons [ " tab-bar-orders-item " ]
1312 }
14-
13+ // periphery:ignore
1514 private let productsTabButtonGetter : ( XCUIApplication ) -> XCUIElement = {
1615 $0. tabBars. firstMatch. buttons [ " tab-bar-products-item " ]
1716 }
18-
17+ // periphery:ignore
1918 private let posTabButtonGetter : ( XCUIApplication ) -> XCUIElement = {
2019 $0. tabBars. firstMatch. buttons [ " tab-bar-pos-item " ]
2120 }
22-
21+ // periphery:ignore
2322 private let menuTabButtonGetter : ( XCUIApplication ) -> XCUIElement = {
2423 $0. tabBars. firstMatch. buttons [ " tab-bar-menu-item " ]
2524 }
26-
25+ // periphery:ignore
2726 private var myStoreTabButton : XCUIElement { myStoreTabButtonGetter ( app) }
27+ // periphery:ignore
2828 private var ordersTabButton : XCUIElement { ordersTabButtonGetter ( app) }
29+ // periphery:ignore
2930 private var menuTabButton : XCUIElement { menuTabButtonGetter ( app) }
31+ // periphery:ignore
3032 private var productsTabButton : XCUIElement { productsTabButtonGetter ( app) }
33+ // periphery:ignore
3134 private var posTabButton : XCUIElement { posTabButtonGetter ( app) }
3235
3336 public init ( app: XCUIApplication = XCUIApplication ( ) ) throws {
@@ -41,39 +44,46 @@ public final class TabNavComponent: ScreenObject {
4144 )
4245 }
4346
47+ // periphery:ignore
4448 @discardableResult
4549 public func goToMyStoreScreen( ) throws -> MyStoreScreen {
4650 myStoreTabButton. tap ( )
4751 return try MyStoreScreen ( )
4852 }
4953
54+ // periphery:ignore
5055 @discardableResult
5156 public func goToOrdersScreen( ) throws -> OrdersScreen {
5257 ordersTabButton. tap ( )
5358 return try OrdersScreen ( )
5459 }
5560
61+ // periphery:ignore
5662 @discardableResult
5763 public func goToProductsScreen( ) throws -> ProductsScreen {
5864 productsTabButton. tap ( )
5965 return try ProductsScreen ( )
6066 }
6167
68+ // periphery:ignore
6269 public func goToPOSScreen( ) throws -> POSScreen {
6370 posTabButton. tap ( )
6471 return try POSScreen ( )
6572 }
6673
74+ // periphery:ignore
6775 @discardableResult
6876 public func goToMenuScreen( ) throws -> MenuScreen {
6977 menuTabButton. tap ( )
7078 return try MenuScreen ( )
7179 }
7280
81+ // periphery:ignore
7382 static func isLoaded( ) -> Bool {
7483 ( try ? TabNavComponent ( ) . isLoaded) ?? false
7584 }
7685
86+ // periphery:ignore
7787 // TODO: This paradigm is used enough around the test suits that it would be worth extracting to `ScreenObject`.
7888 static func isVisible( ) -> Bool {
7989 guard let tabNavComponent = try ? TabNavComponent ( ) else { return false }
0 commit comments