{
  "when": "2026-10-04T12:08:26.191Z",
  "personal_fixture": true,
  "fictional_pupils": 3,
  "checks_count": 29,
  "checks": [
    {
      "name": "Anonymous pupil list refused",
      "ok": true,
      "when": "2026-10-04T12:08:22.267Z"
    },
    {
      "name": "Two local staff roles created; unknown role refused",
      "ok": true,
      "when": "2026-10-04T12:08:22.491Z"
    },
    {
      "name": "Wrong password and unknown account refused",
      "ok": true,
      "when": "2026-10-04T12:08:22.713Z"
    },
    {
      "name": "Cross-origin login refused",
      "ok": true,
      "when": "2026-10-04T12:08:22.722Z"
    },
    {
      "name": "Two distinct HttpOnly SameSite sessions issued",
      "ok": true,
      "when": "2026-10-04T12:08:22.911Z"
    },
    {
      "name": "Session tokens hashed in SQLite",
      "ok": true,
      "when": "2026-10-04T12:08:22.912Z"
    },
    {
      "name": "Canteen staff cannot add a pupil",
      "ok": true,
      "when": "2026-10-04T12:08:22.917Z"
    },
    {
      "name": "Canteen staff cannot export roster",
      "ok": true,
      "when": "2026-10-04T12:08:22.929Z"
    },
    {
      "name": "Unknown role field cannot promote staff",
      "ok": true,
      "when": "2026-10-04T12:08:22.936Z"
    },
    {
      "name": "Administrator registers three fictional pupils",
      "ok": true,
      "when": "2026-10-04T12:08:22.949Z"
    },
    {
      "name": "Duplicate identifier refused without a fourth row",
      "ok": true,
      "when": "2026-10-04T12:08:22.957Z"
    },
    {
      "name": "Empty pupil and extra role field refused",
      "ok": true,
      "when": "2026-10-04T12:08:22.966Z"
    },
    {
      "name": "Foreign-origin attendance write refused",
      "ok": true,
      "when": "2026-10-04T12:08:22.968Z"
    },
    {
      "name": "Invalid calendar day and string attendance refused",
      "ok": true,
      "when": "2026-10-04T12:08:22.978Z"
    },
    {
      "name": "Unknown pupil attendance refused",
      "ok": true,
      "when": "2026-10-04T12:08:22.981Z"
    },
    {
      "name": "Repeated attendance does not count duplicate meals",
      "ok": true,
      "when": "2026-10-04T12:08:22.995Z"
    },
    {
      "name": "Correction removes one meal; other dates remain separate",
      "ok": true,
      "when": "2026-10-04T12:08:23.007Z"
    },
    {
      "name": "Administrator receives a real dated UTF-8 CSV",
      "ok": true,
      "when": "2026-10-04T12:08:23.010Z"
    },
    {
      "name": "Export neutralizes leading spreadsheet formulas",
      "ok": true,
      "when": "2026-10-04T12:08:23.020Z"
    },
    {
      "name": "Pupils, attendance and roles persist after server restart",
      "ok": true,
      "when": "2026-10-04T12:08:23.042Z"
    },
    {
      "name": "Browser administrator sees persisted roster and totals",
      "ok": true,
      "when": "2026-10-04T12:08:25.152Z"
    },
    {
      "name": "Browser class filter shows only CP1 pupils",
      "ok": true,
      "when": "2026-10-04T12:08:25.195Z"
    },
    {
      "name": "Browser correction updates persisted meal total",
      "ok": true,
      "when": "2026-10-04T12:08:25.285Z"
    },
    {
      "name": "Administrator display fits 1440 pixels",
      "ok": true,
      "when": "2026-10-04T12:08:25.444Z"
    },
    {
      "name": "Administrator display fits 390 pixels",
      "ok": true,
      "when": "2026-10-04T12:08:25.532Z"
    },
    {
      "name": "Browser canteen view hides admin actions and still marks a meal",
      "ok": true,
      "when": "2026-10-04T12:08:25.952Z"
    },
    {
      "name": "Canteen display fits 1440 pixels",
      "ok": true,
      "when": "2026-10-04T12:08:26.115Z"
    },
    {
      "name": "Canteen display fits 390 pixels",
      "ok": true,
      "when": "2026-10-04T12:08:26.184Z"
    },
    {
      "name": "Logout revokes the server-side session",
      "ok": true,
      "when": "2026-10-04T12:08:26.191Z"
    }
  ],
  "production": false,
  "limitations": "One school, two locally created roles, Node/SQLite on localhost. No child data, customer access, production hosting, parent portal, tuition, pedagogy, payments or full security audit tested."
}