---
title: "Verify iOS swipe deletion and undo restore order"
description: "Validate an iOS list deletion and its undo path, confirming record identity, original position, and persistence after returning to the list."
canonical_url: "https://vostride.com/agent-library/ios-flows/swipe-delete-undo-restores-order.md"
md_url: "https://vostride.com/agent-library/ios-flows/swipe-delete-undo-restores-order.md"
content_kind: "recipe"
topic: "ios-flows"
---

# Verify iOS swipe deletion and undo restore order

Validate an iOS list deletion and its undo path, confirming record identity, original position, and persistence after returning to the list.

## Risk

A local undo animation may reinsert a row while the backend remains deleted, or restore the wrong neighboring item. Distinct adjacent records and a stable ordering rule make both failures detectable.

## Fixtures

- An owned iOS sandbox app with an explicit app-state policy and a five-item ordered reading list.
- Each list item has a distinct identifier and subtitle; choose the middle item so ordering can be checked on both sides.
- A read-only list oracle and a documented undo window; use a prepared app clock fixture externally only if deterministic timing is needed.

## Steps

1. Open the reading list and verify the ordered identifiers A through E, including the distinct subtitle of item C.
2. Use the app-supported swipe-delete interaction on C and verify only C disappears while the undo control is visible.
3. Activate Undo within the documented window and verify C returns between B and D with its original subtitle.
4. Leave the list and reopen it; verify all five identifiers appear in the original order without duplicate C rows.
5. Inspect the independent list oracle and verify C remains active with its original ordering value and that no unrelated item carries a deletion marker.

## Expected results

- The undo operation restores the intended item identifier and neighboring order.
- The reopened list agrees with persistent state rather than a temporary animation.
- No duplicate row or unintended deletion exists in the complete sandbox collection.

## False-pass traps

- Seeing the same title return does not prove the original item identity survived.
- Checking immediately after Undo can miss a delayed delete response that removes the row again.

## Cleanup

- Restore the fixture list if necessary and clear any pending deletion jobs in the sandbox.

## Use with agent-qa

Adapt this test design to your application's acceptance criteria and configured target using the [recipe execution guide](/agent-library/software-factory/turn-a-recipe-into-an-agent-qa-test.md). External fixture setup and non-UI checks require your own supported hooks or test tooling. Validate the authored test, execute it, and inspect the completed evidence; this recipe is not a recorded test result.

## References

- [agent-qa mobile testing](/docs/agent-qa/guides/mobile-testing.md)
- [agent-qa test](/docs/agent-qa/configuration/test.md)
- [agent-qa hooks](/docs/agent-qa/guides/hooks.md)

- [iOS application QA recipes](/agent-library/ios-flows.md)
- [Software factory QA library](/agent-library.md)
