Files
canteen-asset-tracker/TEST_PLAN.md
T

2.2 KiB

Canteen Asset Tracker — Full Test Plan

Areas to Cover

API Tests (pytest)

  • Backend Health & Auth/health, /api/auth/login, /api/auth/me, auth enforcement
  • Assets CRUD — create, read, update, delete, list, search by machine_id, validation
  • Check-ins — create with/without GPS, list by asset, cascade on delete
  • Customers CRUD — create, read, update, delete, list
  • Locations CRUD — create with customer relation, read, update, delete, list with rooms
  • Rooms CRUD — create with location relation, read, update, delete, list by location
  • Users CRUD — create, read, update (role/password), delete, list
  • Geofences CRUD — create polygon, update, delete, list, point-in-geofence check
  • Proximity — find assets near GPS point
  • Visits — create, list by asset, stats
  • Activity Feed — list with user/limit filters
  • Dashboard Stats — aggregate counts
  • CSV Exports — assets, checkins, service-summary
  • File Uploads — icon upload, photo upload
  • OCR — image upload and text extraction
  • Settings CRUD — categories, makes, models, key_names, key_types, badge_types

Frontend UI Tests (browser)

  • Login page — renders, accepts admin/changeme, redirects
  • Add Asset tab — form renders, barcode scan, manual entry, OCR, GPS capture
  • Asset List tab — shows assets, filter, detail view, CSV import
  • Map tab — pins, geofences drawn, heatmap, GPS status badge
  • Customers & Locations tab — lists, CRUD forms
  • Dashboard tab — stats cards render
  • Reporting tab — export buttons work
  • Settings tab — entity lists, add/delete settings
  • Navigation — drawer open/close, tab switching
  • Dark theme — consistent styling

E2E Smoke Test

  • Full workflow — login → create asset → check in → verify stats → export CSV → delete

Existing Test Coverage

  • smoke_test.sh: 16 bash-based API smoke tests (health, asset CRUD, checkins, stats, CSV, 404/422 validation)
  • tests/test_server.py: 3209-line pytest suite covering DB schema, v2 migration, seed data, asset CRUD