// // IconPackTests.swift // Tests iOS // // Icon pack tests: select each of the 7 icon packs and verify no crash. // TC-072 // import XCTest final class IconPackTests: BaseUITestCase { override var seedFixture: String? { "single_mood" } override var bypassSubscription: Bool { true } /// All 7 icon pack accessibility identifiers (lowercased enum case names). private let allIconPacks = [ "fontawesome", "emoji", "handemjoi", "weather", "garden", "hearts", "cosmic" ] /// TC-072: Select each of 7 icon packs without crashing. func testIconPacks_AllSelectable() { let tabBar = TabBarScreen(app: app) let settingsScreen = tabBar.tapSettings() settingsScreen.assertVisible() settingsScreen.tapCustomizeTab() let customizeScreen = CustomizeScreen(app: app) for pack in allIconPacks { customizeScreen.selectIconPack(pack) XCTAssertTrue(customizeScreen.iconPackButton(named: pack).exists, "Icon pack button '\(pack)' should exist in the customize view") } captureScreenshot(name: "icon_packs_cycled") // Navigate to Day tab and verify no crash — entry row should still exist tabBar.tapDay() assertDayContentVisible() captureScreenshot(name: "day_view_after_icon_pack_change") } /// TC-072: Verify each icon pack button exists in the customize view. func testIconPacks_AllButtonsExist() { let tabBar = TabBarScreen(app: app) let settingsScreen = tabBar.tapSettings() settingsScreen.assertVisible() settingsScreen.tapCustomizeTab() let customizeScreen = CustomizeScreen(app: app) for pack in allIconPacks { let button = customizeScreen.iconPackButton(named: pack) if !button.exists { _ = app.swipeUntilExists(button, direction: .up, maxSwipes: 6) } XCTAssertTrue( button.waitForExistence(timeout: 3), "Icon pack button '\(pack)' should exist" ) } captureScreenshot(name: "icon_packs_all_buttons") } }