mirror of
https://github.com/debpalash/VoiceStudio.git
synced 2026-10-20 06:19:45 +08:00
* ci(mobile): iOS screenshot tour of every screen A UI test walks consent, connect, Speak (with keyboard and engine picker), Voices, Dub, Dictate and Settings against the mocked host, then relaunches in light mode, keeping a screenshot of each. The mobile workflow exports them as the ios-screenshots artifact so the iOS app can be reviewed visually without a local Xcode. * fix(ios): visual review from the simulator screenshot tour - Consent: real heading, Android's copy, exactly Yes/No; dismissing = No. - Speak: editor placeholder (also its accessibility label). - Search: one token-styled container, no nested field box. - Dub: 'Choose' when no languages are selected; history uses the shared mobile.dub.history_meta string. - Dictate: one tap-or-hold control instead of a button plus a label. - Settings: palette rows with compact swatches instead of two filled buttons. * test(ios): UI tests match how SwiftUI exposes sheets and fields The first simulator run showed the new tests, written without a simulator, queried XCUIElement.sheets (SwiftUI sheets aren't exposed as sheets) and pinned a search text field to the 44 pt container height (the field is the inner text line). Assert the two consent choices by identifier, drag from the sheet's grabber above the title, and drop height and vacuous sheet checks; the screenshots cover layout. * test(mobile): deflake the receipt test; dismiss consent with a real swipe - Android: the failed-upload receipt test waited 5 s without advancing the main looper, so a slow runner timed out (passed on the same code before). Drive the looper while waiting, up to 20 s. - iOS: dismiss the consent sheet with swipeDown on its content instead of a computed coordinate drag that missed the sheet. * test(ios): screenshot tour requires the Speak controls; drop the fake light relaunch Review: a missing engine or Generate control let the tour pass silently, and the -AppleInterfaceStyle relaunch only reopened consent, not light mode.