Skip to content

[QA] Auth → Onboard → Dashboard user journey — end-to-end integration test #119

Description

@basanth-p

Parent Epic

Part of #116 — Landing Page Responsiveness, Dashboard UI Cleanup & Frontend–Backend Integration QA

Depends on: PR #106 (@supabase/ssr migration) being merged.


🎯 Objective

Verify the most critical user journey in func(kode) — from clicking "Connect" on the landing page, through GitHub OAuth, through onboarding, to landing on a working dashboard — against live Supabase with no regressions from the @supabase/ssr migration in PR #106.


🛠️ Setup

  1. Use a test GitHub account (not your personal account) so you can repeat the journey
  2. Deploy to staging/Vercel preview OR run npm run dev with .env.local pointing to the real Supabase project
  3. Open browser DevTools → Network tab and Console
  4. Walk through each step below

✅ Journey Checklist

Step 1 — Landing Page → Login

  • Navigate to /
  • Navbar shows "Connect" CTA (not logged-in state)
  • Click "Connect" → redirects to /auth/login
  • Click "Sign in with GitHub" → redirects to GitHub OAuth page
  • GitHub OAuth page shows patchid/func-kode app requesting permissions
  • Approve → redirects back to the app without a 500 error
  • Network: GET /auth/callback?code=... returns a redirect (not a 500)
  • Console: no errors

Step 2 — Onboarding

  • After OAuth, user is redirected to /onboard (first-time user, is_onboarded = false)
  • Onboard form renders correctly — all fields visible, no blank screen
  • Fill in all required fields and submit
  • Supabase users table: row exists with is_onboarded = true after submit
  • After submit, user redirected to /dashboard
  • Console: no errors during onboard submit

Step 3 — Dashboard

  • /dashboard loads and shows logged-in user's data
  • Navbar shows @username dropdown (not "Connect")
  • Clicking "Profile" in dropdown → navigates to /profile
  • Clicking "Dashboard" in dropdown → navigates to /dashboard
  • Clicking "Logout" → signs out, redirects to /auth/login, Navbar shows "Connect"

Step 4 — Return visit (already onboarded)

  • Sign in again with the same GitHub account
  • User is redirected directly to /dashboard (NOT to /onboard again)
  • is_onboarded = true correctly skips onboarding

Step 5 — Protected route enforcement

  • While logged out, navigate directly to /dashboard → redirected to /auth/login
  • After login, redirected back to /dashboard (check ?redirect=/dashboard param handling)

🚨 Known Issues to Watch For

Symptom Likely cause
500 on /auth/callback @supabase/ssr cookie handling regression in PR #106
Redirected to /auth/login even when logged in getSession() vs getUser() mismatch in dashboard/layout.tsx
Onboard shown on return visit is_onboarded not being written correctly to Supabase
Navbar shows "Connect" when logged in onAuthStateChange listener not firing correctly after SSR migration

✅ Acceptance Criteria

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions