mirror of
https://github.com/callstack/agent-device.git
synced 2026-09-14 20:06:34 +08:00
7f3e355426
* fix(ios): complete regular snapshot depth frontier * fix(ios): align depth frontier with visibility fold * fix(ios): exercise regular depth frontier in CI * fix(ios): cover visible-depth frontier through public snapshot * fix(ios): tolerate absent deep-link confirmation * test(ios): expose visible-depth fixture hierarchy * test(ios): wait for visible-depth fixture subtree * fix(ios): keep visible-depth fixture minimal * fix(ios): update snapshot hint fixtures * test(ios): avoid fixture label aggregation * test(ios): match fixture raw hierarchy * test(ios): prove visible-depth raw ancestry * test(ios): align depth smoke with AX hierarchy
84 lines
2.8 KiB
TypeScript
84 lines
2.8 KiB
TypeScript
export type IosSimulatorBehaviorId =
|
|
| 'background-foreground-resume'
|
|
| 'cold-start-deep-link-navigation'
|
|
| 'host-focus-preservation'
|
|
| 'interrupted-system-ui-flow'
|
|
| 'long-list-scroll-recovery'
|
|
| 'modal-open-close'
|
|
| 'permission-state-recovery'
|
|
| 'regular-visible-depth-frontier'
|
|
| 'text-entry-keyboard-lifecycle';
|
|
|
|
type BehaviorCoverageEntry =
|
|
| {
|
|
assertion: string;
|
|
level: 'live';
|
|
owner: string;
|
|
}
|
|
| {
|
|
assertion: string;
|
|
level: 'workflow-live';
|
|
owner: { path: string; test: string };
|
|
};
|
|
|
|
/**
|
|
* Cross-command mobile usage patterns requested by #320. Command ownership
|
|
* remains exhaustive in coverage-manifest.ts; this table prevents that
|
|
* command-level view from hiding missing end-to-end journeys.
|
|
*/
|
|
export const IOS_SIMULATOR_BEHAVIOR_COVERAGE = {
|
|
'cold-start-deep-link-navigation': {
|
|
assertion:
|
|
'launchApp(clearState) removes seeded app data, opens the stored deep route, renders its payload, and navigates onward',
|
|
level: 'live',
|
|
owner: 'smoke:automation-input',
|
|
},
|
|
'text-entry-keyboard-lifecycle': {
|
|
assertion:
|
|
'fill opens the keyboard, before/after pixels prove dismissal, and type appends text',
|
|
level: 'live',
|
|
owner: 'smoke:form-input',
|
|
},
|
|
'background-foreground-resume': {
|
|
assertion: 'Home backgrounds the fixture and its persisted transition survives foregrounding',
|
|
level: 'live',
|
|
owner: 'full:lifecycle-system',
|
|
},
|
|
'modal-open-close': {
|
|
assertion: 'a native page-sheet modal opens structurally and closes through its control',
|
|
level: 'live',
|
|
owner: 'smoke:automation-input',
|
|
},
|
|
'permission-state-recovery': {
|
|
assertion:
|
|
'microphone reset, grant, denial, and second reset produce exact app-observed states',
|
|
level: 'live',
|
|
owner: 'full:lifecycle-system',
|
|
},
|
|
'regular-visible-depth-frontier': {
|
|
assertion:
|
|
'regular depth 1 retains an independently projected child after its clipped structural parent is removed, while raw depth remains traversal-bounded',
|
|
level: 'live',
|
|
owner: 'smoke:regular-visible-depth-frontier',
|
|
},
|
|
'interrupted-system-ui-flow': {
|
|
assertion: 'Home and app switcher expose distinct system pixels before fixture restoration',
|
|
level: 'live',
|
|
owner: 'full:lifecycle-system',
|
|
},
|
|
'long-list-scroll-recovery': {
|
|
assertion: 'direction, bottom footer, reverse movement, and top rediscovery are all observed',
|
|
level: 'live',
|
|
owner: 'full:fixture-replays',
|
|
},
|
|
'host-focus-preservation': {
|
|
assertion:
|
|
'when the hosted runner can establish a Finder canary, it remains frontmost across simulator automation',
|
|
level: 'workflow-live',
|
|
owner: {
|
|
path: '.github/workflows/ios.yml',
|
|
test: 'Assert simulator automation preserved host focus',
|
|
},
|
|
},
|
|
} as const satisfies Record<IosSimulatorBehaviorId, BehaviorCoverageEntry>;
|