Browser Test Suite for Humans
Run browser-based smoke tests against the running Humans site using the Chrome extension.
Prerequisites
- •The site must be running (typically
http://localhost:5000orhttps://localhost:5001) - •The Chrome extension must be connected (
/chrometo check) - •You must be logged in with a Google account that has the Admin role for full coverage
Step 0: Determine scope from $ARGUMENTS
| Argument | What to test |
|---|---|
(none) or all | Run all test suites below in order |
smoke | Quick health check: home, login state, profile loads |
auth | Authentication flow only |
profile | Profile viewing and editing |
consent | Legal document consent flow |
teams | Team browsing, joining, details |
admin | Admin panel (requires Admin role) |
gdpr | Privacy page, data export, deletion request/cancel |
i18n | Language switching across key pages |
| A URL | Navigate to that URL and report what you see |
Step 1: Fetch live test plan from the site
Before running tests, try to fetch the test plan from the running site:
Navigate to {base_url}/.well-known/test-plan.txt
If this page loads successfully, use it as the authoritative test plan — it may contain updated test scenarios, known issues, or temporary skip instructions that override the defaults below. Merge any site-served instructions with the suites below (site instructions take precedence for conflicts).
If the page returns 404 or the site isn't running, fall back to the built-in suites below.
Step 2: Determine base URL
Check if the site is running:
- •Try
http://localhost:5000first - •If that fails, try
https://localhost:5001 - •If neither works, tell the user the site doesn't appear to be running
Step 3: Run test suites
For each suite in scope, follow the steps below. After each step, report PASS/FAIL with a brief note. Stop a suite on the first FAIL and move to the next suite (don't cascade failures).
Suite: auth
Goal: Verify login state and session behavior.
- •Navigate to the home page. Confirm it loads without errors.
- •Check if you're logged in (look for a profile link or username in the nav bar vs a "Sign in" button).
- •If logged in: click the profile link and confirm the profile page loads with user data.
- •If NOT logged in: note this — most other suites require authentication.
Suite: profile
Goal: Verify profile viewing and editing. Requires authentication.
- •Navigate to
/Profile. Confirm it shows the user's profile with name, contact fields, and team memberships. - •Navigate to
/Profile/Edit. Confirm the edit form loads with current values pre-filled. - •Verify these fields are present: Burner Name, First Name, Last Name, Pronouns, City, Country, Bio, Birthday (month/day).
- •Verify the contact fields section exists with an "Add" button.
- •Verify the volunteer history (Burner CV) section exists.
- •Make a minor edit (e.g., update the Bio field), submit the form, and verify the change appears on the profile page.
- •Undo the edit (restore the original value).
- •Navigate to
/Profile/Emails. Confirm it shows email addresses with visibility controls.
Suite: consent
Goal: Verify the consent review flow. Requires authentication.
- •Navigate to
/Consent. Confirm it shows documents grouped by team. - •If any documents show "Pending" status, click "Review" on one.
- •On the review page, verify:
- •The document title and content are displayed
- •Language tabs appear (at minimum Spanish/Castellano)
- •The consent checkbox is present with the label about reading and agreeing
- •The "Give Consent" button exists
- •Check the checkbox and verify no browser validation error appears (the custom validation message should match the site language, not the browser default).
- •Uncheck the checkbox, then try to submit. Verify a localized validation message appears (NOT the browser default "Please check this box if you want to proceed").
- •Do NOT actually submit consent (click "Back to List" instead).
Suite: teams
Goal: Verify team browsing and detail pages. Requires authentication.
- •Navigate to
/Teams. Confirm the team list loads with cards showing team names and member counts. - •Click on any non-system team to view its details page.
- •On the detail page, verify: team name, description, member list with roles (Lead/Member), and Google resources section.
- •Navigate to
/Teams/My. Confirm it shows the user's team memberships. - •Navigate to
/Teams/Map. Confirm the map loads (may show "No API key" if Google Maps isn't configured — that's OK, just verify no crash). - •Navigate to
/Teams/Birthdays. Confirm the birthday calendar loads for the current month.
Suite: admin
Goal: Verify admin panel functionality. Requires Admin or Board role.
- •Navigate to
/Admin. Confirm the dashboard loads with metric cards (members, pending approvals, pending consents, etc.) and recent activity. - •Navigate to
/Admin/Humans. Confirm the member list loads. Try the search box with a partial name or email. - •Click on any member to view their detail page. Verify it shows: profile info, role assignments, consent records, and audit log entries.
- •Navigate to
/Admin/Teams. Confirm the team list loads with system teams marked. - •Navigate to
/Admin/Roles. Confirm it shows current role assignments (Admin, Board, Lead). - •Navigate to
/Admin/LegalDocuments. Confirm the document list loads. - •Navigate to
/Admin/AuditLog. Confirm the audit log loads with entries. Try filtering by action type. - •Navigate to
/Admin/Configuration. Confirm it shows configuration status without exposing secrets. - •Navigate to
/hangfire. Confirm the Hangfire dashboard loads and shows scheduled jobs.
Suite: gdpr
Goal: Verify GDPR/privacy features. Requires authentication.
- •Navigate to
/Profile/Privacy. Confirm the privacy page loads. - •Verify the "Export My Data" button exists.
- •Click "Export My Data" and verify a JSON file downloads with profile data.
- •Verify the "Request Account Deletion" button exists (but do NOT click it).
Suite: i18n
Goal: Verify language switching works across the site.
Test each language: English (en), Spanish (es), French (fr), German (de), Italian (it).
For each language:
- •Switch language using the language selector in the nav/footer.
- •Navigate to
/Profile. Verify labels are translated (not showing English keys like "Profile_FieldName"). - •Navigate to
/Consent. Verify the page title and labels are translated. - •Navigate to
/Teams. Verify the page title is translated.
After testing all languages, switch back to the user's preferred language.
Suite: smoke
Goal: Quick health check — everything loads, nothing crashes.
- •Navigate to
/health. Confirm it returns "Healthy". - •Navigate to
/. Confirm the home page loads. - •Navigate to
/Profile. Confirm the profile loads. - •Navigate to
/Teams. Confirm the team list loads. - •Navigate to
/Consent. Confirm the consent page loads. - •Check the browser console for any JavaScript errors. Report any found.
Step 4: Report results
Summarize results in a table:
| Suite | Result | Notes | |----------|--------|-------| | auth | PASS | | | profile | PASS | | | consent | FAIL | Checkbox validation message showed browser default | | ... | ... | ... |
If any suite failed, list the specific failures with:
- •What was expected
- •What actually happened
- •Screenshot or DOM state if relevant
End with a count: X/Y suites passed.