dawarich/TESTING_CHECKLIST.md

5.5 KiB

Layer Control Upgrade - Testing Checklist

Pre-Testing Setup

  1. Start the development server

    bin/dev
    
  2. Clear browser cache to ensure new JavaScript and CSS are loaded

  3. Log in to the application with demo credentials or your account

  4. Navigate to the Map page (/map)

Visual Verification

  • Layer control appears in the top-right corner
  • Layer control shows a hierarchical tree structure (not flat list)
  • Control has two main sections: "Map Styles" and "Layers"
  • Sections can be expanded/collapsed
  • No standalone Places control button (📍) is visible

Map Styles Testing

  • Expand "Map Styles" section
  • All map styles are listed (OpenStreetMap, OpenStreetMap.HOT, etc.)
  • Selecting a different style changes the base map
  • Only one map style can be selected at a time
  • Selected style is indicated with a radio button

Layers Testing

Basic Layers

  • Expand "Layers" section

  • All basic layers are present:

    • Points
    • Routes
    • Tracks
    • Heatmap
    • Fog of War
    • Scratch map
    • Areas
    • Photos
  • Toggle each layer on/off

  • Verify each layer displays correctly when enabled

  • Multiple layers can be enabled simultaneously

Visits Group

  • Expand "Visits" section
  • Two sub-layers are present:
    • Suggested
    • Confirmed
  • Enable "Suggested" - suggested visits appear on map
  • Enable "Confirmed" - confirmed visits appear on map
  • Disable both - no visits visible on map
  • Select All checkbox works for Visits group

Places Group

  • Expand "Places" section
  • At least these options are present:
    • Places (top-level checkbox)
    • Untagged
    • (Individual tags if any exist)

Testing "Places (top-level checkbox)":

  • Enable "Places (top-level checkbox)"
  • All places appear on map regardless of tags
  • Place markers are clickable
  • Place popups show correct information

Testing "Untagged":

  • Enable "Untagged" (disable "Places (top-level checkbox)" first)
  • Only places without tags appear
  • Verify by checking places that have tags don't appear

Testing Individual Tags: (If you have tags created)

  • Each tag appears as a separate layer
  • Tag icon is displayed before tag name
  • Enable a tag layer
  • Only places with that tag appear
  • Multiple tag layers can be enabled simultaneously
  • Select All checkbox works for Places group

Family Members (if applicable)

  • If in a family, "Family Members" layer appears
  • Enable Family Members layer
  • Family member locations appear on map
  • Family member markers are distinguishable from own markers

Functional Testing

Layer Persistence

  • Enable several layers (e.g., Points, Routes, Suggested Visits, Places (top-level checkbox))
  • Refresh the page
  • Verify enabled layers remain enabled after refresh
  • Verify disabled layers remain disabled after refresh

Places API Integration

  • Open browser console (F12)
  • Enable "Network" tab
  • Enable "Untagged" places layer
  • Verify API call: GET /api/v1/places?api_key=...&untagged=true
  • Enable a tag layer
  • Verify API call: GET /api/v1/places?api_key=...&tag_ids=<tag_id>
  • Verify no JavaScript errors in console

Layer Interaction

  • Enable Routes layer
  • Click on a route segment
  • Verify route details popup appears
  • Enable Places "Places (top-level checkbox)" layer
  • Click on a place marker
  • Verify place details popup appears
  • Verify layers don't interfere with each other

Performance

  • Enable all layers simultaneously
  • Map remains responsive
  • No significant lag when toggling layers
  • No memory leaks (check browser dev tools)

Edge Cases

No Tags Scenario

  • If no tags exist, Places section should show:
    • Places (top-level checkbox)
    • Untagged
  • No error in console

No Places Scenario

  • Disable all place layers
  • Enable "Untagged"
  • Verify appropriate message or empty state
  • No errors in console

No Family Scenario

  • If not in a family, "Family Members" layer shouldn't appear
  • No errors in console

Regression Testing

Existing Functionality

  • Routes/Tracks selector still works (if visible with tracks_debug=true)
  • Settings panel still works
  • Calendar panel still works
  • Visit selection tool still works
  • Add visit button still works

Other Controllers

  • Family members controller still works (if applicable)
  • Photo markers still load correctly
  • Area drawing still works
  • Fog of war updates correctly

Mobile Testing (if applicable)

  • Layer control is accessible on mobile
  • Tree structure expands/collapses on tap
  • Layers can be toggled on mobile
  • No layout issues on small screens

Error Scenarios

  • Disconnect internet, try to load a layer that requires API call
  • Verify appropriate error handling
  • Verify user gets feedback about the failure
  • Verify app doesn't crash

Console Checks

Throughout all testing, monitor the browser console for:

  • No JavaScript errors
  • No unexpected warnings
  • No failed API requests (except during error scenario testing)
  • Appropriate log messages for debugging

Sign-off

  • All critical tests pass
  • Any failures are documented
  • Ready for production deployment

Notes

Record any issues, unexpected behavior, or suggestions for improvement:

[Your notes here]