TC-125: feels://subscribe deep link opens subscription view TC-126: Malformed deep link (feels://invalidpath) does not crash TC-078: Trial expired state shows "Trial expired" banner in Settings Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
35 lines
1.1 KiB
Swift
35 lines
1.1 KiB
Swift
//
|
|
// TrialExpirationTests.swift
|
|
// Tests iOS
|
|
//
|
|
// TC-078: Trial expiration state is reflected in the UI.
|
|
//
|
|
|
|
import XCTest
|
|
|
|
final class TrialExpirationTests: BaseUITestCase {
|
|
override var seedFixture: String? { "empty" }
|
|
override var bypassSubscription: Bool { false }
|
|
override var expireTrial: Bool { true }
|
|
|
|
/// TC-078: When trial is expired, Settings shows "Trial expired" text
|
|
/// and the upgrade banner is visible.
|
|
func testTrialExpired_ShowsExpiredBanner() {
|
|
let tabBar = TabBarScreen(app: app)
|
|
let settingsScreen = tabBar.tapSettings()
|
|
settingsScreen.assertVisible()
|
|
|
|
// Verify upgrade banner is visible (trial expired, not subscribed)
|
|
settingsScreen.assertUpgradeBannerVisible()
|
|
|
|
// Check for "Trial expired" text in the banner
|
|
let expiredText = app.staticTexts["Trial expired"]
|
|
XCTAssertTrue(
|
|
expiredText.waitForExistence(timeout: 5),
|
|
"Settings should show 'Trial expired' text when trial has expired"
|
|
)
|
|
|
|
captureScreenshot(name: "trial_expired_banner")
|
|
}
|
|
}
|