Add Tests iOS/Screens/ page objects and fix gitignore
The screens/ gitignore rule was matching Tests iOS/Screens/ on case-insensitive macOS. Anchored to /screens/ (repo root only) so the 7 UI test page object files are no longer ignored. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
62
Tests iOS/Screens/TabBarScreen.swift
Normal file
62
Tests iOS/Screens/TabBarScreen.swift
Normal file
@@ -0,0 +1,62 @@
|
||||
//
|
||||
// TabBarScreen.swift
|
||||
// Tests iOS
|
||||
//
|
||||
// Screen object for the main tab bar navigation.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
struct TabBarScreen {
|
||||
let app: XCUIApplication
|
||||
|
||||
// MARK: - Tab Buttons (using localized labels)
|
||||
|
||||
var dayTab: XCUIElement { app.tabBars.buttons["Day"] }
|
||||
var monthTab: XCUIElement { app.tabBars.buttons["Month"] }
|
||||
var yearTab: XCUIElement { app.tabBars.buttons["Year"] }
|
||||
var insightsTab: XCUIElement { app.tabBars.buttons["Insights"] }
|
||||
var settingsTab: XCUIElement { app.tabBars.buttons["Settings"] }
|
||||
|
||||
// MARK: - Actions
|
||||
|
||||
@discardableResult
|
||||
func tapDay() -> DayScreen {
|
||||
dayTab.tapWhenReady()
|
||||
return DayScreen(app: app)
|
||||
}
|
||||
|
||||
@discardableResult
|
||||
func tapMonth() -> TabBarScreen {
|
||||
monthTab.tapWhenReady()
|
||||
return self
|
||||
}
|
||||
|
||||
@discardableResult
|
||||
func tapYear() -> TabBarScreen {
|
||||
yearTab.tapWhenReady()
|
||||
return self
|
||||
}
|
||||
|
||||
@discardableResult
|
||||
func tapInsights() -> TabBarScreen {
|
||||
insightsTab.tapWhenReady()
|
||||
return self
|
||||
}
|
||||
|
||||
@discardableResult
|
||||
func tapSettings() -> SettingsScreen {
|
||||
settingsTab.tapWhenReady()
|
||||
return SettingsScreen(app: app)
|
||||
}
|
||||
|
||||
// MARK: - Assertions
|
||||
|
||||
func assertDayTabSelected() {
|
||||
XCTAssertTrue(dayTab.isSelected, "Day tab should be selected")
|
||||
}
|
||||
|
||||
func assertTabBarVisible() {
|
||||
XCTAssertTrue(dayTab.waitForExistence(timeout: 5), "Tab bar should be visible")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user