Files

3.1 KiB

---
id: TC-{MODULE}-{NNN}
title: "{flow description}"
feature: "{feature name}"
priority: high|medium|low
type: functional|regression|smoke|e2e|edge-case
status: draft
tags: ["{tag1}", "{tag2}"]
commit: {commit-hash}
---

# {Title}

## Objective
{What this test verifies — 1-2 sentences describing the user goal and what the test proves}

## Preconditions
- {User role and permissions required}
- {System state required before starting — e.g., "at least one product exists in catalog"}
- {Test data requirements — e.g., "valid credit card in Stripe test mode"}
- {Navigation starting point — e.g., "user is logged into Admin portal"}

## Steps
| # | Action | Expected Result |
|---|--------|-----------------|
| 1 | {user action — Navigate to, Click, Enter, Select, Submit} | {observable outcome — page loads, form appears, message displays} |
| 2 | {next user action} | {what user sees or what changes} |
| 3 | {next user action} | {confirmation, redirect, updated state} |

## Postconditions
{Side effects to verify AFTER the flow completes — sourced from domain events and integration points}
- {e.g., "Order confirmation email sent to customer email address"}
- {e.g., "Inventory quantity decremented for purchased items"}
- {e.g., "Audit log entry created with action 'order.created'"}

## Edge Cases
{Variant scenarios worth separate attention — each could become its own TC if important enough}
- {e.g., "Order with mixed digital and physical products"}
- {e.g., "Payment fails after order created — verify rollback"}

## Notes
- Related TCs: {cross-references to other TCs in this module}
- Dependencies: {external system dependencies — payment gateway, email service}
- Known issues: {documented bugs or limitations affecting this flow}

Frontmatter fields align with what test-case-locator greps for (id, title, priority, status, type, tags). Always populate all fields — the locator agent extracts them for coverage reporting. The commit field tracks which code version was analyzed to produce this TC — used for staleness detection on regeneration.

Steps table rules:

  • Actions use imperative verbs from the user's perspective: Navigate, Click, Enter, Select, Submit, Drag, Upload, Scroll
  • Expected results describe what the user OBSERVES — visible UI changes, messages, redirects — not internal state
  • Keep each row to one atomic action. Multi-step actions (fill form -> submit) split into separate rows
  • Number steps sequentially — branching flows (if X then Y) become separate TCs

Postconditions sourced from:

  • Domain events (e.g., OrderCreatedEvent -> "confirmation email sent")
  • Message handlers (e.g., InventoryReservationHandler -> "inventory reserved")
  • Webhook dispatches (e.g., FulfillmentWebhookPublisher -> "fulfillment notified")
  • Audit log entries, cache invalidations, CRM syncs

Priority definitions:

  • high: Core happy path, payment/money flows, data integrity, security-critical
  • medium: Alternative paths, common edge cases, permission boundaries
  • low: Rare edge cases, cosmetic validation, error message wording