{
  "config": {
    "configFile": "/Users/rvanvuren/Projects/alqove-web/e2e-scheduling-real/playwright.config.ts",
    "rootDir": "/Users/rvanvuren/Projects/alqove-web/e2e-scheduling-real",
    "forbidOnly": false,
    "fullyParallel": false,
    "globalSetup": null,
    "globalTeardown": null,
    "globalTimeout": 0,
    "grep": {},
    "grepInvert": null,
    "maxFailures": 0,
    "metadata": {
      "actualWorkers": 1
    },
    "preserveOutput": "always",
    "projects": [
      {
        "outputDir": "/Users/rvanvuren/Projects/alqove-web/.cache/scheduling-qa/E2E-fcbd96e7b97048ba/test-results",
        "repeatEach": 1,
        "retries": 0,
        "metadata": {
          "actualWorkers": 1
        },
        "id": "",
        "name": "",
        "testDir": "/Users/rvanvuren/Projects/alqove-web/e2e-scheduling-real",
        "testIgnore": [],
        "testMatch": [
          "/.*\\.spec\\.ts$/"
        ],
        "timeout": 90000
      }
    ],
    "quiet": false,
    "reporter": [
      [
        "list",
        null
      ],
      [
        "json",
        {
          "outputFile": "/Users/rvanvuren/Projects/alqove-web/.cache/scheduling-qa/E2E-fcbd96e7b97048ba/results.json"
        }
      ]
    ],
    "reportSlowTests": {
      "max": 5,
      "threshold": 300000
    },
    "shard": null,
    "tags": [],
    "updateSnapshots": "missing",
    "updateSourceMethod": "patch",
    "version": "1.60.0",
    "workers": 1,
    "webServer": null
  },
  "suites": [
    {
      "title": "20-schedule-browser.spec.ts",
      "file": "20-schedule-browser.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "owner creates assigned/open drafts, publishes to staff/team, edits back to draft and switches tenants",
          "ok": false,
          "tags": [],
          "tests": [
            {
              "timeout": 90000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "",
              "projectName": "",
              "results": [
                {
                  "workerIndex": 0,
                  "parallelIndex": 0,
                  "status": "failed",
                  "duration": 25509,
                  "error": {
                    "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: getByRole('table', { name: /Weekly schedule/i })\nExpected: visible\nTimeout: 20000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toBeVisible\" with timeout 20000ms\u001b[22m\n\u001b[2m  - waiting for getByRole('table', { name: /Weekly schedule/i })\u001b[22m\n",
                    "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: getByRole('table', { name: /Weekly schedule/i })\nExpected: visible\nTimeout: 20000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toBeVisible\" with timeout 20000ms\u001b[22m\n\u001b[2m  - waiting for getByRole('table', { name: /Weekly schedule/i })\u001b[22m\n\n    at /Users/rvanvuren/Projects/alqove-web/e2e-scheduling-real/20-schedule-browser.spec.ts:9:71",
                    "location": {
                      "file": "/Users/rvanvuren/Projects/alqove-web/e2e-scheduling-real/20-schedule-browser.spec.ts",
                      "column": 71,
                      "line": 9
                    },
                    "snippet": "   7 |   await login(page, 'owner', '/seller/schedule');\n   8 |   await page.getByLabel('Week containing', { exact: true }).fill(week);\n>  9 |   await expect(page.getByRole('table', { name: /Weekly schedule/i })).toBeVisible();\n     |                                                                       ^\n  10 |   for (const [membership, notes, day] of [[fixture.actors.staff.memberships.a, assignedNote, week], ['', openNote, '2026-10-06']]) {\n  11 |     await page.getByRole('button', { name: 'Add shift', exact: true }).click();\n  12 |     const dialog = page.getByRole('dialog');"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/Users/rvanvuren/Projects/alqove-web/e2e-scheduling-real/20-schedule-browser.spec.ts",
                        "column": 71,
                        "line": 9
                      },
                      "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: getByRole('table', { name: /Weekly schedule/i })\nExpected: visible\nTimeout: 20000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toBeVisible\" with timeout 20000ms\u001b[22m\n\u001b[2m  - waiting for getByRole('table', { name: /Weekly schedule/i })\u001b[22m\n\n\n   7 |   await login(page, 'owner', '/seller/schedule');\n   8 |   await page.getByLabel('Week containing', { exact: true }).fill(week);\n>  9 |   await expect(page.getByRole('table', { name: /Weekly schedule/i })).toBeVisible();\n     |                                                                       ^\n  10 |   for (const [membership, notes, day] of [[fixture.actors.staff.memberships.a, assignedNote, week], ['', openNote, '2026-10-06']]) {\n  11 |     await page.getByRole('button', { name: 'Add shift', exact: true }).click();\n  12 |     const dialog = page.getByRole('dialog');\n    at /Users/rvanvuren/Projects/alqove-web/e2e-scheduling-real/20-schedule-browser.spec.ts:9:71"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-09-06T18:57:56.443Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/Users/rvanvuren/Projects/alqove-web/.cache/scheduling-qa/E2E-fcbd96e7b97048ba/test-results/20-schedule-browser-owner--318f2--draft-and-switches-tenants/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/Users/rvanvuren/Projects/alqove-web/.cache/scheduling-qa/E2E-fcbd96e7b97048ba/test-results/20-schedule-browser-owner--318f2--draft-and-switches-tenants/error-context.md"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/Users/rvanvuren/Projects/alqove-web/.cache/scheduling-qa/E2E-fcbd96e7b97048ba/test-results/20-schedule-browser-owner--318f2--draft-and-switches-tenants/trace.zip"
                    }
                  ],
                  "errorLocation": {
                    "file": "/Users/rvanvuren/Projects/alqove-web/e2e-scheduling-real/20-schedule-browser.spec.ts",
                    "column": 71,
                    "line": 9
                  }
                }
              ],
              "status": "unexpected"
            }
          ],
          "id": "c6a1cb2133d4d2733fcf-988f61366d71b6ce8597",
          "file": "20-schedule-browser.spec.ts",
          "line": 3,
          "column": 5
        }
      ]
    }
  ],
  "errors": [],
  "stats": {
    "startTime": "2026-09-06T18:57:56.007Z",
    "duration": 26293.794,
    "expected": 0,
    "skipped": 0,
    "unexpected": 1,
    "flaky": 0
  }
}