diff --git a/UITests/SmokeUITests.swift b/UITests/SmokeUITests.swift new file mode 100644 index 0000000..fb60e77 --- /dev/null +++ b/UITests/SmokeUITests.swift @@ -0,0 +1,23 @@ +// SmokeUITests.swift +// Minimal smoke test — verifies the UI-testing target is wired correctly. +// Real feature coverage lives in dedicated UITest files (see PairingUITests, +// SessionSwitcherUITests, etc.). + +import XCTest + +@MainActor +final class SmokeUITests: XCTestCase { + + override func setUpWithError() throws { + continueAfterFailure = false + } + + /// Launch the app and verify it shows *some* UI within a reasonable + /// timeout. This is just a wiring check — feature tests assert specifics. + func testAppLaunchesWithoutCrashing() throws { + let app = XCUIApplication() + app.launch() + // Wait for any window to appear. + XCTAssertTrue(app.wait(for: .runningForeground, timeout: 10)) + } +} diff --git a/project.yml b/project.yml index c8588c0..444648f 100644 --- a/project.yml +++ b/project.yml @@ -35,6 +35,7 @@ schemes: config: Debug targets: - piRemoteTests + - piRemoteUITests archive: config: Release @@ -82,3 +83,16 @@ targets: - path: Tests/CoreTests dependencies: - target: piRemote + + piRemoteUITests: + type: bundle.ui-testing + platform: iOS + deploymentTarget: "17.0" + sources: + - path: UITests + settings: + base: + TEST_TARGET_NAME: piRemote + PRODUCT_BUNDLE_IDENTIFIER: de.vpsj.pi-remote.uitests + dependencies: + - target: piRemote