mirror of
https://github.com/garrytan/gstack.git
synced 2026-09-20 20:00:45 +02:00
Standalone planner that turns the IOSQAFlow JSON contract into an xcodebuild XCUITest invocation for simulator or physical device, using semantic selectors (identifier/role/label) and no coordinate taps. Pure plan generation; covered by 7 unit tests. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
50 lines
1.4 KiB
JSON
50 lines
1.4 KiB
JSON
{
|
|
"version": 1,
|
|
"name": "swiftui-gallery-smoke",
|
|
"bundleIdentifier": "com.gstack.iosqa.adaptive.swiftui",
|
|
"steps": [
|
|
{ "id": "launch", "action": "launch" },
|
|
{
|
|
"id": "increment",
|
|
"action": "tap",
|
|
"selector": { "identifier": "swiftui.increment", "label": "Increment", "role": "button" },
|
|
"verify": {
|
|
"kind": "labelEquals",
|
|
"selector": { "identifier": "swiftui.count", "role": "staticText" },
|
|
"value": "Count: 1"
|
|
}
|
|
},
|
|
{
|
|
"id": "search",
|
|
"action": "typeText",
|
|
"selector": { "identifier": "swiftui.search", "label": "Search terms", "role": "textField" },
|
|
"text": "adaptive",
|
|
"verify": {
|
|
"kind": "labelEquals",
|
|
"selector": { "identifier": "swiftui.echo", "role": "staticText" },
|
|
"value": "Echo: adaptive"
|
|
}
|
|
},
|
|
{
|
|
"id": "open-sheet",
|
|
"action": "tap",
|
|
"selector": { "identifier": "swiftui.sheet.open", "role": "button" },
|
|
"verify": {
|
|
"kind": "exists",
|
|
"selector": { "identifier": "swiftui.sheet.content" },
|
|
"timeoutMs": 2000
|
|
}
|
|
},
|
|
{
|
|
"id": "close-sheet",
|
|
"action": "tap",
|
|
"selector": { "identifier": "swiftui.sheet.done", "role": "button" },
|
|
"verify": {
|
|
"kind": "notExists",
|
|
"selector": { "identifier": "swiftui.sheet.content" },
|
|
"timeoutMs": 2000
|
|
}
|
|
}
|
|
]
|
|
}
|