// // 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) } captureScreenshot(name: "icon_packs_cycled") // Navigate to Day tab and verify no crash tabBar.tapDay() DayScreen(app: app).assertAnyEntryExists() captureScreenshot(name: "day_view_after_icon_pack_change") } /// TC-072: Verify each icon pack button exists in the customize view. func testIconPacks_AllButtonsExist() { let settingsScreen = TabBarScreen(app: app).tapSettings() settingsScreen.assertVisible() settingsScreen.tapCustomizeTab() let customizeScreen = CustomizeScreen(app: app) for pack in allIconPacks { let button = customizeScreen.iconPackButton(named: pack) button.scrollIntoView(in: app, direction: .up) button.waitForExistenceOrFail( timeout: defaultTimeout, message: "Icon pack button '\(pack)' should exist" ) } captureScreenshot(name: "icon_packs_all_buttons") } }