diff --git a/docs/use-cases/inline_expand.feature b/docs/use-cases/inline_expand.feature new file mode 100644 index 0000000..96a7f65 --- /dev/null +++ b/docs/use-cases/inline_expand.feature @@ -0,0 +1,43 @@ +Feature: Inline-expand summary + Q&A in the list (ADR-031, #16) + As a reader skimming my summaries + I want to open a summary and its Q&A in place in the list + So that I get the full read and follow-up without leaving the list (SPA-like, no page hop) + + # HTMX inline-expand, no SPA framework (ADR-031). Each scenario maps to a Go test + # in scenario_coverage_test.go; tagged @pending until the TDD step lands it. + + @pending # TestExpandReturnsSummaryBodyFragment + Scenario: A summarized card expands to the full summary in place + Given a summarized video in my list + When I expand its card + Then the full summary, highlights, and takeaways are returned as an in-place card fragment, not a full page + + @pending # TestCollapseReturnsCompactCard + Scenario: An expanded card collapses back to the compact card + Given an expanded card + When I collapse it + Then the compact card fragment is returned in its place + + @pending # TestExpandedCardOffersChatDock + Scenario: The expanded card offers the Q&A dock + Given chat is enabled + When a summarized card is expanded + Then the expanded card includes the deeper-dive chat affordance for that video + + @pending # TestCompactCardExpandOnlyWhenSummarized + Scenario: Only a summarized card offers expand + Given a discovered but not-yet-summarized card + When the card is rendered + Then it shows its summarize/queue footer and no expand affordance + + @pending # TestCompactCardHasNoJSDetailFallback + Scenario: With JS off the card still reaches the full summary + Given a summarized card + When it is rendered + Then its expand affordance carries an href to the detail page as a no-JS fallback + + @pending # TestDetailAndExpandShareSummaryBody + Scenario: The detail page and the expanded card show the same summary + Given a summarized video + When I view it on the detail page and as an expanded card + Then both render the same summary body (one shared fragment, no drift)