field_ios

In-the-field app for Radroots on iOS
git clone https://radroots.dev/git/field_ios.git
Log | Files | Refs | README | LICENSE

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 }