Close the gap where docs/use-cases/*.feature claimed to be the behavior spec but nothing executed them — so scenarios drifted (the stale "auto summarizes every new video" and "manual is the default" were proof). Decision (per issue #5 BDD-runner fork): no godog — keep .feature as design records, add a cheap name-coverage gate instead. TestScenarioCoverage parses every scenario and asserts each non-@pending one maps to an existing Go test in the scenarioCoverage manifest; it flags unmapped scenarios, missing/renamed tests, and stale entries. It checks the link, not that the test exercises the scenario (the deliberate trade for skipping godog). Also: - Fix the stale ADR-018 drift: "Manual is the default" -> auto is the default for new users; added an explicit default scenario + a plain manual scenario. - Tag 4 documented-but-unbuilt/untested scenarios @pending with reasons (Vimeo connect, BYO config flow, logout->welcome, re-register-after-delete) so they are tracked without a false coverage claim. - CLAUDE.md BDD section now describes the real setup (design records + the gate + @pending convention) instead of claiming an executable spec. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
32 lines
1.2 KiB
Gherkin
32 lines
1.2 KiB
Gherkin
Feature: Public landing page
|
|
As a first-time visitor
|
|
I want a public welcome page before I log in
|
|
So that I understand what Tapir is and how to get started without hitting a login wall
|
|
|
|
Scenario: An unauthenticated visit to the root is sent to the welcome page
|
|
Given I am not logged in
|
|
When I open the root path "/"
|
|
Then I am redirected to "/welcome"
|
|
|
|
Scenario: The welcome page invites an unauthenticated visitor to start
|
|
Given I am not logged in
|
|
When I open "/welcome"
|
|
Then I see a "Get Started" call to action
|
|
|
|
Scenario: An authenticated user on the welcome page sees their way in and out
|
|
Given I am logged in
|
|
When I open "/welcome"
|
|
Then I see a link to my summaries
|
|
And I see a way to log out
|
|
|
|
@pending
|
|
# Behaviour ships (logout redirects to /welcome) but is not unit-tested: logout lives in
|
|
# the OIDC Auth impl and StubAuth has no routes to exercise it cheaply.
|
|
Scenario: Logging out returns to the welcome page
|
|
Given I am logged in
|
|
When I log out
|
|
Then I am returned to "/welcome"
|
|
|
|
# /welcome is mounted outside the auth guard so it is reachable without a session;
|
|
# the root and all data routes stay behind it (commits around the WelcomePage work).
|