mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-09 20:29:58 +02:00
chore(apple): add screenshot studio
This commit is contained in:
44
apple/UITests/ScreenshotTests.swift
Normal file
44
apple/UITests/ScreenshotTests.swift
Normal file
@@ -0,0 +1,44 @@
|
||||
import XCTest
|
||||
|
||||
/// Captures App Store screenshots by driving the running app and grabbing the
|
||||
/// full-screen image on each tab. Run via `apple/scripts/appstore-screenshots.sh`,
|
||||
/// which boots the target simulator, runs this test, and extracts the attachments
|
||||
/// at the device's native resolution (e.g. 2064×2752 on the 13-inch iPad).
|
||||
final class ScreenshotTests: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
continueAfterFailure = false
|
||||
}
|
||||
|
||||
func testCaptureAppStoreScreenshots() {
|
||||
let app = XCUIApplication()
|
||||
app.launch()
|
||||
|
||||
// The top pill exposes the three primary tabs. Tap by accessibility label
|
||||
// when available, falling back to a normalized coordinate on the pill.
|
||||
let tabs: [(name: String, dx: CGFloat)] = [
|
||||
("01-Send", 0.407),
|
||||
("02-Receive", 0.487),
|
||||
("03-Settings", 0.579),
|
||||
]
|
||||
|
||||
for tab in tabs {
|
||||
let label = String(tab.name.dropFirst(3)) // "Send" / "Receive" / "Settings"
|
||||
let button = app.buttons[label]
|
||||
if button.waitForExistence(timeout: 10), button.isHittable {
|
||||
button.tap()
|
||||
} else {
|
||||
app.coordinate(withNormalizedOffset: CGVector(dx: tab.dx, dy: 0.039)).tap()
|
||||
}
|
||||
|
||||
// Let the tab transition and any content settle before capturing.
|
||||
Thread.sleep(forTimeInterval: 1.5)
|
||||
|
||||
let screenshot = XCUIScreen.main.screenshot()
|
||||
let attachment = XCTAttachment(screenshot: screenshot)
|
||||
attachment.name = tab.name
|
||||
attachment.lifetime = .keepAlways
|
||||
add(attachment)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user