TeraRootShellUITests.swift (1985B)
1 import XCTest 2 3 final class TeraRootShellUITests: XCTestCase { 4 @MainActor 5 func testShellExposesExactlyTodayAndAddBottomTabs() { 6 let app = XCUIApplication() 7 app.launchEnvironment["TERA_IOS_UI_TEST_SHELL"] = "1" 8 app.launch() 9 10 let tabBar = app.tabBars.firstMatch 11 XCTAssertTrue(tabBar.waitForExistence(timeout: 5)) 12 XCTAssertEqual(tabBar.buttons.count, 2) 13 XCTAssertTrue(tabBar.buttons["Today"].exists) 14 XCTAssertTrue(tabBar.buttons["Add"].exists) 15 XCTAssertFalse(tabBar.buttons["Capture"].exists) 16 XCTAssertFalse(tabBar.buttons["Activity"].exists) 17 XCTAssertFalse(tabBar.buttons["Settings"].exists) 18 19 tabBar.buttons["Add"].tap() 20 XCTAssertTrue( 21 app.descendants(matching: .any)["radroots.add.root"].waitForExistence(timeout: 2) 22 ) 23 tabBar.buttons["Today"].tap() 24 XCTAssertTrue( 25 app.descendants(matching: .any)["radroots.today.root"].waitForExistence(timeout: 2) 26 ) 27 } 28 29 @MainActor 30 func testCanonicalDeepLinksDriveLifecycleNavigation() throws { 31 let app = XCUIApplication() 32 app.launchEnvironment["TERA_IOS_UI_TEST_SHELL"] = "1" 33 app.launch() 34 35 let tabBar = app.tabBars.firstMatch 36 let today = app.descendants(matching: .any)["radroots.today.root"] 37 let add = app.descendants(matching: .any)["radroots.add.root"] 38 XCTAssertTrue(tabBar.waitForExistence(timeout: 5)) 39 tabBar.buttons["Today"].tap() 40 XCTAssertTrue(today.waitForExistence(timeout: 5)) 41 42 try app.open(XCTUnwrap(URL(string: "radroots://add"))) 43 XCTAssertTrue(add.waitForExistence(timeout: 2)) 44 45 try app.open(XCTUnwrap(URL(string: "radroots://today"))) 46 XCTAssertTrue(today.waitForExistence(timeout: 2)) 47 48 try app.open(XCTUnwrap(URL(string: "radroots://add/extra"))) 49 XCTAssertTrue(today.waitForExistence(timeout: 2)) 50 XCTAssertFalse(add.exists) 51 } 52 }