master

Volunteer Form Test Cases

This document contains ready-to-use data for manual QA of w34p-volunteer-form.html, with an emphasis on the strengthened date-of-birth (DOB) validation. Copy/paste any JSON payload below directly into the form to speed up testing.

DOB Boundary Matrix

Case DOB Input Approx. Age Expected Result
Valid middle 1990-04-17 35 Accepted
Youngest allowed ${today - 18y} (e.g., 2007-11-23) 18 Accepted
Oldest allowed ${today - 85y} (e.g., 1940-11-23) 85 Accepted
Underage 2010-09-01 15 Blocked with “Birth year must be between …”
Over age max 1930-03-12 95 Blocked with “Birth year must be between …”
Not a date 1554-01-01 or abcd N/A Blocked with “Please enter a valid date”

Replace ${today - 18y} with the actual date when running the test (today’s date minus 18 years), and similarly for ${today - 85y}.

Full Form Fixtures

1. validMidRangeAdult

{
  "first_name": "Lena",
  "last_name": "Quintana",
  "middle_name": "Mae",
  "date_of_birth": "1992-05-09",
  "street_address": "413 Market Street, Apt 5C",
  "city": "Asheville",
  "state": "NC",
  "zip_code": "28801",
  "phone_number": "(828) 467-8396",
  "email": "lena.quintana@resiliencemail.org",
  "drivers_license": "license_lena_q.jpg",
  "emergency_contact_name": "Jacob Quintana",
  "emergency_contact_relationship": "Spouse",
  "emergency_contact_phone": "(828) 555-8021",
  "references": [
    {
      "name": "Erica Lang",
      "relationship": "Former Supervisor",
      "phone": "(828) 421-9641",
      "email": "erica.lang@mountainrelief.org",
      "organization": "Mountain Relief Coalition"
    }
  ],
  "previous_volunteer": "no",
  "interests": ["emergency_response", "logistics"],
  "skills_certifications": "FEMA IS-100, Chain saw safety, Bilingual English/Spanish",
  "languages": "English, Spanish",
  "availability": ["weekday_evenings", "weekends"],
  "willing_to_travel": "yes",
  "tshirt_size": "M",
  "dietary_restrictions": "None",
  "accessibility_needs": "",
  "how_heard": "community_event",
  "motivation": "Deployable incident management experience.",
  "consents": {
    "background_check_consent": true,
    "liability_waiver": true,
    "code_of_conduct": true,
    "media_release": true,
    "terms_agreement": true
  }
}

2. validUpperAgeBoundary

{
  "first_name": "Gerald",
  "last_name": "Nguyen",
  "date_of_birth": "${today - 85y}",
  "street_address": "88 Summit Ridge Rd",
  "city": "Boone",
  "state": "NC",
  "zip_code": "28607",
  "phone_number": "828-555-1200",
  "email": "gerald.nguyen@veteranresponders.org",
  "emergency_contact_name": "Patricia Nguyen",
  "emergency_contact_relationship": "Daughter",
  "emergency_contact_phone": "828-555-7711",
  "references": [
    {
      "name": "Howard Ellis",
      "relationship": "Team Lead",
      "phone": "704-555-9944",
      "email": "howard.ellis@ncsearchandrescue.org",
      "organization": "NC Search & Rescue"
    }
  ],
  "interests": ["communications", "admin_support"],
  "availability": ["weekday_mornings"],
  "willing_to_travel": "limited",
  "tshirt_size": "L",
  "consents": {
    "background_check_consent": true,
    "liability_waiver": true,
    "code_of_conduct": true,
    "media_release": false,
    "terms_agreement": true
  }
}

3. Negative Fixtures

[
  {
    "name": "underageApplicant",
    "date_of_birth": "2011-02-14",
    "expectation": "Browser blocks submit with underage message."
  },
  {
    "name": "overageApplicant",
    "date_of_birth": "1932-07-30",
    "expectation": "Browser blocks submit with birth year range message."
  },
  {
    "name": "nonsenseYear",
    "date_of_birth": "1554-01-01",
    "expectation": "Browser blocks submit with valid date message."
  }
]

Use these fixtures during regression runs whenever date validation logic changes, and update ${today - XXy} placeholders to the current boundary dates (today minus 18 years and today minus 85 years). This keeps the manual test data aligned with dynamic validation.