diff --git a/docs/use-cases/connect_account.feature b/docs/use-cases/connect_account.feature index 498a647..e5bcb7b 100644 --- a/docs/use-cases/connect_account.feature +++ b/docs/use-cases/connect_account.feature @@ -24,6 +24,12 @@ Feature: Connect and manage video accounts Then a discovery pass for my account is triggered right away And I do not have to wait for the next scheduled pass to see my videos + Scenario: Connecting summarizes my newest videos right away + Given I have no connected video accounts + When I connect my YouTube account + Then up to the onboarding cap of my newest videos are summarized through the rate gate + And the rest are left to the scheduled recency-bounded pass + Scenario: Tokens are never stored in the clear When I connect any video account Then no OAuth token value is stored in the database diff --git a/docs/use-cases/paste_url.feature b/docs/use-cases/paste_url.feature new file mode 100644 index 0000000..045f761 --- /dev/null +++ b/docs/use-cases/paste_url.feature @@ -0,0 +1,30 @@ +Feature: Paste a YouTube URL to summarize any video + As a user + I want to paste a YouTube link and get a summary + So that I can pull the specific video I want now, even from channels I don't follow + + Scenario: Paste a valid YouTube URL + Given I am connected + When I paste a valid YouTube video URL + Then the video is added to my feed scoped to me + And it is queued for summarization through the shared rate gate + + Scenario: Pasting an invalid link is rejected + When I paste something that is not a YouTube video URL + Then I get a clear error and nothing is added + + Scenario: Pasting a video that cannot be found is honest + When I paste a URL whose video cannot be found + Then I am told it couldn't be found and nothing is added + + Scenario: Pasting the same video twice does not duplicate it + Given I have pasted a video + When I paste the same video again + Then my feed still has exactly one entry for it + + @pending + # Covered by the engine's ADR-010 no-transcript terminal state (degrade-never-error); + # there is no paste-specific test for it. + Scenario: A pasted video with no captions resolves honestly + When I paste a video that has no captions + Then it resolves to the "no transcript available" terminal state diff --git a/test/acceptance/scenario_coverage_test.go b/test/acceptance/scenario_coverage_test.go index 1ae8d8b..912ac10 100644 --- a/test/acceptance/scenario_coverage_test.go +++ b/test/acceptance/scenario_coverage_test.go @@ -37,9 +37,16 @@ var scenarioCoverage = map[string]string{ "An authenticated user on the welcome page sees their way in and out": "TestWelcomeLoggedIn", // connect_account.feature - "Connect a YouTube account": "TestCallbackExchangesAndRecordsConnection", - "Connecting an account discovers videos immediately": "TestCallbackTriggersDiscovery", - "Tokens are never stored in the clear": "TestCallbackExchangesAndRecordsConnection", + "Connect a YouTube account": "TestCallbackExchangesAndRecordsConnection", + "Connecting an account discovers videos immediately": "TestCallbackTriggersDiscovery", + "Connecting summarizes my newest videos right away": "TestNewestUnsummarizedVideoIDs", + "Tokens are never stored in the clear": "TestCallbackExchangesAndRecordsConnection", + + // paste_url.feature + "Paste a valid YouTube URL": "TestPasteValidURLAddsAndRequests", + "Pasting an invalid link is rejected": "TestPasteInvalidURLRejected", + "Pasting a video that cannot be found is honest": "TestPasteVideoNotFound", + "Pasting the same video twice does not duplicate it": "TestPasteDedupNoDuplicate", "Revoking a connection stops watching but keeps history": "TestDisconnectRemovesTokenAndConnectionKeepsAccount", // summarize_mode.feature