# Duplicate

**Test family:** `DUP`

- **DUP-001** New object gets a new identity and a recognizable non-conflicting name.
- **DUP-002** Verify copy/reset rules for state, owner, timestamps, history, comments, files, children, secrets, external IDs, and automations.
- **DUP-003** Duplication of large/deep graphs is atomic or has truthful partial recovery.
- **DUP-004** Repeated/double duplicate produces the intended count, not hidden retries.
- **DUP-005** Permissions are recomputed for the destination; inaccessible children are not leaked.

## Comprehensive per-item coverage

- **DUP-006** Exercise the action with the smallest valid target, an ordinary target, a boundary-size target, and a target whose display text contains emoticons, emoji, RTL, and combining characters.
- **DUP-007** Attempt the action with missing, stale, deleted, archived, locked, invalid, and partially loaded targets; fail specifically without changing adjacent data.
- **DUP-008** Invoke through every exposed surface—detail, list, bulk, keyboard shortcut, API, import, automation, and mobile—using one authoritative business rule.
- **DUP-009** Verify hidden and disabled presentation matches server authorization; direct requests by an unauthorized role or tenant must still fail.
- **DUP-010** Change role, ownership, policy, or target state between rendering and commit; reauthorize and revalidate at the final write.
- **DUP-011** Single-click, double-click, press Enter repeatedly, resend the request, and retry after timeout; create exactly one intended effect.
- **DUP-012** Race two users performing compatible and conflicting actions; define ordering, conflict reporting, and final state.
- **DUP-013** Interrupt before confirmation, during request, after commit but before response, and during downstream work; distinguish canceled, unknown, failed, and complete states.
- **DUP-014** Force validation, dependency, quota, network, and downstream notification failures; preserve atomicity or expose compensating recovery.
- **DUP-015** Verify confirmation text names the exact target and consequence, safely rendering quotes, markup canaries, emoticons, and long values.
- **DUP-016** Use keyboard, screen reader, switch, touch, and zoom/reflow; expose role, name, disabled/pending state, errors, and returned focus.
- **DUP-017** Translate and lengthen action labels and errors; preserve verb meaning, target identity, shortcuts, and layout in RTL locales.
- **DUP-018** Measure latency at normal and supported bulk sizes; show progress, permit safe cancellation, and avoid blocking unrelated work.
- **DUP-019** Check rate limits, quotas, and abuse controls at the UI and API boundary without turning retries into duplicate work.
- **DUP-020** Verify related counts, caches, search indexes, feeds, summaries, and denormalized records converge after the action.
- **DUP-021** Verify notifications and integrations identify the correct actor, target, tenant, old/new state, and do not leak hidden fields.
- **DUP-022** Record one tamper-resistant audit trail with actor, authority, target, time, request/correlation ID, outcome, and reason—without secrets.
- **DUP-023** Repeat from an old client, stale browser tab, expired session, and replayed signed request; reject obsolete or replayed intent safely.
- **DUP-024** Exercise rollback, undo, restore, or compensating action where promised; preserve dependent data and history.
- **DUP-025** Monitor success, failure, latency, retries, deduplication, stuck jobs, and compensation so silent partial completion is detectable.

[Back to Actions and lifecycle transitions index](../../actions-lifecycle.md)
