frontend/docs/testing/CLOUD-ONBOARDING.md
This document outlines critical testing scenarios for the Rivet Cloud onboarding frontend application.
Development URL: http://localhost:5173 (or configured port) Production URL: https://rivet.gg Authentication: Clerk
Scenario: Unauthenticated user visits the application
Verify:
Scenario: User logs in and system determines where to route them based on account state
Prerequisites: User has successfully authenticated via Clerk
Routing Logic (evaluated in order):
Organization Check: Does user have an org?
Project Check: How many projects does the org have?
Namespace Check: How many namespaces does the project have?
Runner Config Check: How many runner configs does the namespace have?
Actor Check: How many actors does the namespace have (including destroyed)?
Test Cases:
Given: User has just completed sign-up with no existing org When: Login completes Then: Default org and project are created, user is routed to onboarding
Given: User has org but no projects When: User navigates to org Then: New project is created, user is routed to onboarding
Given: User has project with no namespaces When: User navigates to project Then: User is routed to onboarding
Given: User has namespace with no runner configs When: User navigates to namespace Then: User is routed to onboarding
Given: User has runner config but no actors (including destroyed) When: User navigates to namespace Then: User is routed to onboarding
Given: User has at least one actor (can be destroyed) When: User navigates to namespace Then: User is routed to actors list view
Given: User has only destroyed actors (no running actors) When: User navigates to namespace Then: User is routed to actors list view (not onboarding)
Scenario: User arrives at onboarding and chooses an integration path
Prerequisites: User was routed to onboarding based on Flow 1 logic
Verify:
Test Cases:
Given: User is on onboarding When: Page loads Then: All three integration path options are displayed
Given: User is on path selection When: User selects template option Then: User is navigated to templates list
Given: User is on path selection When: User selects manual integration option Then: User is navigated to project creation form
Given: User is on path selection When: User selects coding agent option Then: User proceeds to integration flow with coding agent context
Scenario: User browses templates after selecting template path
Prerequisites: User selected template option from path selection
Verify:
Test Cases:
Given: User selected template path When: Templates list loads Then: Available templates are displayed
Given: User is on templates list When: User navigates back Then: User returns to path selection
Given: User is on templates list When: User chooses to start without a template Then: User proceeds to project creation form (without template context)
Given: User is on templates list When: User selects a template Then: User is navigated to template detail with project creation form
Scenario: User views template details and creates project
Prerequisites: User selected a template from templates list
Verify:
Test Cases:
Given: User selected a template When: Template detail page loads Then: Template information and project creation form are displayed
Given: User is on template detail When: User navigates back Then: User returns to templates list (not path selection)
Given: User is on template detail When: User completes project form and submits Then: Project is created with template context, user proceeds to integration flow
Scenario: User creates project without a template
Prerequisites: User selected manual integration or started without a template
Verify:
Test Cases:
Given: User selected manual integration or start without template When: Form loads Then: Project name input is displayed
Given: User is on create project form When: User enters valid project name and submits Then: Project is created, user proceeds to integration flow
Given: User is on create project form When: User enters invalid project name Then: User is informed about validation error
Scenario: After project creation, user selects a deployment provider
Prerequisites: User just created a project (from any path)
Verify:
Test Cases:
Given: User just created a project When: Integration flow loads Then: Available providers are displayed
Given: User created project with a template When: Provider selection loads Then: Only providers compatible with the selected template are shown
Given: User created project without a template When: Provider selection loads Then: All available providers are shown
Given: User is on provider selection When: User selects a provider Then: User proceeds to configuration step
Scenario: User sees configuration instructions based on their previous choices
Prerequisites: User selected a provider
Configuration varies based on:
Verify:
User is informed about:
Available actions:
Test Cases:
Given: User selected template path and provider supports one-click deploy When: Configuration step loads Then: One-click deploy option is available, setup instructions are displayed
Given: User selected coding agent path and provider supports one-click deploy When: Configuration step loads Then: Coding agent setup instructions are displayed
Given: User selected template path and provider does not support one-click deploy When: Configuration step loads Then: Manual setup instructions for template are displayed
Given: User selected manual integration path When: Configuration step loads Then: Quick start guide instructions are displayed
Given: User is on configuration step When: User navigates back Then: User returns to provider selection
Scenario: User inputs deployment endpoint and system validates it
Prerequisites: User is on configuration step
Validation Flow:
Verify:
User is informed about:
Test Cases:
Given: User is on configuration step When: User attempts to proceed with empty endpoint Then: User is informed about validation error
Given: User is on configuration step When: User enters invalid URL format Then: User is informed about invalid format
Given: User enters valid URL format When: Validation runs and service is not responding Then: User is informed about service unavailability
Given: User saw validation error and fixed the endpoint When: Some time passes Then: Validation runs again automatically
Given: User enters valid endpoint with operational service When: Validation succeeds Then: User can proceed to next step
Given: Endpoint validation succeeded When: User proceeds Then: Runner config is created
Scenario: User waits for actor creation after completing configuration
Prerequisites: User completed configuration and runner config was created
Verify:
User is informed about:
Available actions:
Test Cases:
Given: User completed configuration When: Verification step loads Then: User is informed about waiting for actor creation
Given: Runner config has template/provider that supports frontend When: Verification step loads Then: View deployment action is available
Given: Runner config template/provider does not support frontend When: Verification step loads Then: View deployment action is not available
Given: User is on verification step When: Step loads Then: Manual actor creation action is available
Given: User is on verification step When: User chooses to create actor manually Then: Actor creation interface is displayed
Given: User is on verification step When: Actor is created in background (by deployment) Then: User is navigated to actors list view
Given: User came from new user onboarding flow When: Actor is detected and user transitions to dashboard Then: Celebration effect is displayed
Given: User did not come from new user onboarding flow When: Actor is detected and user transitions to dashboard Then: No celebration effect
Given: User is on verification step When: User refreshes the page Then: User remains on verification step
Given: User is on verification step When: User closes and reopens the page Then: User returns to verification step
Scenario: User views the main dashboard after completing onboarding
Prerequisites: User has at least one actor (including destroyed)
Verify:
Scenario: User with existing organization creates a new project
Prerequisites: User is authenticated with at least one existing project/organization
Verify:
Test Cases:
Given: Existing user is in organization When: User navigates to new project creation Then: Path selection is displayed
Given: Existing user is on path selection for new project When: User completes path selection, template/manual, and integration Then: New project is created and configured
Verify:
Verify:
Verify:
Verify:
Verify:
Verify:
Verify:
Verify:
Verify: User is informed about failure and can retry
Verify: User is informed about failure and can retry
Verify: User is informed and can retry or choose different path
Verify: User is informed and can retry
Verify: User is informed about timeout, automatic retry occurs
Verify: User is informed, manual creation option remains available
Verify: User is redirected to authentication, progress is preserved where possible
Verify: User is informed about network error, can retry when reconnected
Verify: User is informed, can retry
Verify: User with only destroyed actors is routed to actors list (not onboarding)