{
  "artifact": "/Users/rvanvuren/Projects/alqove-web/.cache/scheduling-qa/E2E-aefca6b2495572a7",
  "stats": {
    "startTime": "2026-09-07T16:49:04.949Z",
    "duration": 39658.34,
    "expected": 11,
    "skipped": 0,
    "unexpected": 0,
    "flaky": 0
  },
  "tests": [
    {
      "id": "4be2244f332125737752-c9fef29bc065cb250ca6",
      "title": "real login resolves manager membership and selected-store boundary",
      "file": "00-auth.spec.ts",
      "project": "",
      "status": "expected",
      "attempt_statuses": [
        "passed"
      ]
    },
    {
      "id": "c3074283c2bde52fc5f0-fa47491c20bb0435a9a7",
      "title": "real API enforces stale revisions, tenant child IDs, and DST copy preview/commit",
      "file": "10-schedule-api.spec.ts",
      "project": "",
      "status": "expected",
      "attempt_statuses": [
        "passed"
      ]
    },
    {
      "id": "c6a1cb2133d4d2733fcf-68c4f0b40260b9ce6e19",
      "title": "owner creates assigned/open drafts, publishes, edits, copies and switches tenants using real UI",
      "file": "20-schedule-browser.spec.ts",
      "project": "",
      "status": "expected",
      "attempt_statuses": [
        "passed"
      ]
    },
    {
      "id": "c6a1cb2133d4d2733fcf-5843f1afa85fddc88848",
      "title": "staff browser excludes drafts, refreshes published own/team view and switches stores",
      "file": "20-schedule-browser.spec.ts",
      "project": "",
      "status": "expected",
      "attempt_statuses": [
        "passed"
      ]
    },
    {
      "id": "11458750d704032b6e3f-8431482e12415154e32f",
      "title": "staff clocks and breaks through real buttons with durable idempotent replay",
      "file": "30-clock-payroll.spec.ts",
      "project": "",
      "status": "expected",
      "attempt_statuses": [
        "passed"
      ]
    },
    {
      "id": "11458750d704032b6e3f-a0bda1f7103d193583ff",
      "title": "manager correction and approval leads to owner browser CSV download and immutable replay",
      "file": "30-clock-payroll.spec.ts",
      "project": "",
      "status": "expected",
      "attempt_statuses": [
        "passed"
      ]
    },
    {
      "id": "c7397b2a9aa80a519ce2-fb6432fabdc751085763",
      "title": "stranded-clock approval/export guards and cross-store punch IDs fail closed",
      "file": "40-guards.spec.ts",
      "project": "",
      "status": "expected",
      "attempt_statuses": [
        "passed"
      ]
    },
    {
      "id": "f2d6717b33a336c9d05a-ca5474418c34094d247c",
      "title": "real API payroll snapshot replays unchanged after settings mutation and rejects exported corrections",
      "file": "50-payroll-api.spec.ts",
      "project": "",
      "status": "expected",
      "attempt_statuses": [
        "passed"
      ]
    },
    {
      "id": "97c671db4a66e3f18a26-a4ee7c364c5f696c7d37",
      "title": "invitations: existing account continues login, explicitly accepts, discovers and selects staff store",
      "file": "60-invitations.spec.ts",
      "project": "",
      "status": "expected",
      "attempt_statuses": [
        "passed"
      ]
    },
    {
      "id": "97c671db4a66e3f18a26-12e2c5e73715b0ce9e62",
      "title": "invitations: wrong account fails closed without membership or acceptance",
      "file": "60-invitations.spec.ts",
      "project": "",
      "status": "expected",
      "attempt_statuses": [
        "passed"
      ]
    },
    {
      "id": "97c671db4a66e3f18a26-b8a69e9578ecd491549b",
      "title": "invitations: revoked offer fails closed for the invited existing account",
      "file": "60-invitations.spec.ts",
      "project": "",
      "status": "expected",
      "attempt_statuses": [
        "passed"
      ]
    }
  ],
  "freshness": {
    "source_changed_during_run": false,
    "changed_paths": [],
    "start_sha256": "07cd190233d13e5afc75eb797c4f381865a2cd5a1137273c8b64aaf72817866e",
    "end_sha256": "07cd190233d13e5afc75eb797c4f381865a2cd5a1137273c8b64aaf72817866e"
  },
  "current_source_sha256": "07cd190233d13e5afc75eb797c4f381865a2cd5a1137273c8b64aaf72817866e",
  "cleanup": {
    "marker": "E2E-aefca6b2495572a7",
    "counts_before": {
      "users": 6,
      "stores": 2,
      "store_memberships": 8,
      "shifts": 8,
      "time_punches": 10,
      "timesheets": 9,
      "payroll_exports": 2
    },
    "removed": [
      "database.sqlite",
      "manifest.json",
      "environment.json",
      "isolated.env"
    ],
    "database_absent": true,
    "credentials_absent": true
  },
  "sensitive_files_remaining": [],
  "listeners_remaining": {
    "3100": false,
    "8105": false
  },
  "readiness": {
    "api": "http://127.0.0.1:8105/v1/health",
    "web": "http://localhost:3100/login",
    "ready": true
  }
}
