Skip to content

fix: handle mocha hook failures in reporter#851

Merged
devpow112 merged 3 commits into
mainfrom
depowell/mocha-hook-failure-handling
May 28, 2026
Merged

fix: handle mocha hook failures in reporter#851
devpow112 merged 3 commits into
mainfrom
depowell/mocha-hook-failure-handling

Conversation

@devpow112
Copy link
Copy Markdown
Contributor

@devpow112 devpow112 commented May 27, 2026

Adds EVENT_TEST_FAIL handling to the mocha reporter so hook failures (before, beforeEach, afterEach, after) are properly captured in the report. Previously, hook failures could leave test details missing (particularly beforeAll failures where no test events fire at all).

The _onTestFail handler checks if the failure is from a hook, finds the affected test via ctx.currentTest, and populates the detail with name, file, started, timeout, duration, and status if the detail doesn't already have a status set. For after/afterEach hooks the test has already completed, so the hook failure is ignored.

Also adds a getStatus() method to ReportDetailBuilder, integration tests covering all hook failure types (including flaky hooks to document that Mocha does not retry hooks), and lowers the c8 coverage threshold for statements/lines from 85% to 80% (will address in another PR)

https://desire2learn.atlassian.net/browse/QE-2091

@devpow112 devpow112 added the bug Something isn't working label May 27, 2026
@github-actions

This comment has been minimized.

@devpow112 devpow112 force-pushed the depowell/mocha-hook-failure-handling branch from 1061bab to 9eb4fc1 Compare May 27, 2026 22:17
@devpow112 devpow112 force-pushed the depowell/mocha-hook-failure-handling branch from 9eb4fc1 to f79e1f5 Compare May 27, 2026 22:20
@github-actions

This comment has been minimized.

@devpow112 devpow112 marked this pull request as ready for review May 27, 2026 22:24
@devpow112 devpow112 requested a review from a team as a code owner May 27, 2026 22:24
@devpow112 devpow112 requested a review from rashmipriya12 May 27, 2026 22:25
@devpow112 devpow112 changed the title Handle mocha hook failures in reporter fix: handle mocha hook failures in reporter May 27, 2026
Comment thread src/reporters/mocha.cjs
.setLocationFile(file)
.setStarted((new Date()).toISOString())
.setTimeout(_timeout)
.addDuration(0)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we not addDuration as 0 potentially add a larger number. The reason I am suggesting that in grafana reporter the 0 will make the test best performing whereas we would want to see them as potential issue test that needs to be fixed.
In testbench I implemented getStartTime and substract that from overall run time, which is arbitary large number. Alternatively, 500ms or some other number can be added

Copy link
Copy Markdown
Contributor Author

@devpow112 devpow112 May 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In testbench I implemented getStartTime and substract that from overall run time, which is arbitary large number.

I had done this originally but it wasn't really representative of what was happening. Test reporting captures test run data. We don't actually capture hooks at the moment. I think it may be worth trying to add hooks into the data eventually so we can better see these type of failure.

The way I was looking at it a value of 0 will only really be what's set in the cases of before all or before each failing which to me makes sense since the tests never ran. After each will add 0 but it's an accumulated value so the test time will have already been recorded for the test end handler and the after each failing won't add to the test time it'll just be reported as 0 since it didn't run or failed. I'm worried about us over reporting known wrong data so 0 seemed like the right thing to do based on the scenarios I layed out.

Copy link
Copy Markdown
Contributor Author

@devpow112 devpow112 May 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note as well that if a before all or before each fails then I believed from what I observed the test isn't even included in the data since it never ran. NM I'm wrong on that it will be included but will be marked as failed.

@devpow112 devpow112 requested a review from rashmipriya12 May 28, 2026 14:01
rashmipriya12
rashmipriya12 previously approved these changes May 28, 2026
sarahboyd
sarahboyd previously approved these changes May 28, 2026
@devpow112 devpow112 enabled auto-merge (squash) May 28, 2026 14:38
@github-actions

This comment has been minimized.

@devpow112
Copy link
Copy Markdown
Contributor Author

UGH. Gotta look into the stupid flakiness with webdriver and web test runner. It's unrelated to this change.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@devpow112
Copy link
Copy Markdown
Contributor Author

Oh come on!!!!!

@github-actions

This comment has been minimized.

@devpow112
Copy link
Copy Markdown
Contributor Author

Lol, it works locally fine. sigh

@devpow112 devpow112 dismissed stale reviews from sarahboyd and rashmipriya12 via 73fe5bc May 28, 2026 18:45
@devpow112 devpow112 disabled auto-merge May 28, 2026 18:48
@devpow112 devpow112 enabled auto-merge (squash) May 28, 2026 18:48
@github-actions
Copy link
Copy Markdown
Contributor

Coverage Report

Report

Report Validation

mocha 🟢

Schema: PASSED 🟢
Contents: PASSED 🟢

Report Contents

{
  "id": "fc41c8e9-edc7-46ee-9c32-ff2d45db81e9",
  "version": 3,
  "summary": {
    "status": "failed",
    "github": {
      "organization": "Brightspace",
      "repository": "test-reporting-node",
      "workflow": "ci.yml",
      "runId": 26595088472,
      "runAttempt": 1
    },
    "git": {
      "branch": "depowell/mocha-hook-failure-handling",
      "sha": "cb7e0682471e53ed91e33e13467605e5f135195b"
    },
    "framework": "mocha",
    "operatingSystem": "linux",
    "started": "2026-05-28T18:47:08.172Z",
    "duration": {
      "total": 16040
    },
    "count": {
      "passed": 8,
      "failed": 6,
      "skipped": 2,
      "flaky": 2
    }
  },
  "details": [
    {
      "name": "hook failures > before all failure > test with before all failure",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/hook-failures.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:08.181Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Mocha Hook Failures Test Reporting",
        "type": "ui"
      },
      "retries": 0
    },
    {
      "name": "hook failures > before each failure > test with before each failure",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/hook-failures.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:08.184Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Mocha Hook Failures Test Reporting",
        "type": "ui"
      },
      "retries": 0
    },
    {
      "name": "hook failures > after each failure > test with after each failure",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/hook-failures.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:08.186Z",
      "duration": {
        "total": 50,
        "final": 50
      },
      "taxonomy": {
        "tool": "Mocha Hook Failures Test Reporting",
        "type": "ui"
      },
      "retries": 0
    },
    {
      "name": "hook failures > after all failure > test with after all failure",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/hook-failures.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:08.239Z",
      "duration": {
        "total": 50,
        "final": 50
      },
      "taxonomy": {
        "tool": "Mocha Hook Failures Test Reporting",
        "type": "ui"
      },
      "retries": 0
    },
    {
      "name": "hook failures > flaky before all > test with flaky before all",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/hook-failures.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:08.292Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Mocha Hook Failures Test Reporting",
        "type": "ui"
      },
      "retries": 0
    },
    {
      "name": "hook failures > flaky before each > test with flaky before each",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/hook-failures.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:08.292Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Mocha Hook Failures Test Reporting",
        "type": "ui"
      },
      "retries": 0
    },
    {
      "name": "hook failures > flaky after each > test with flaky after each",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/hook-failures.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:08.293Z",
      "duration": {
        "total": 51,
        "final": 51
      },
      "taxonomy": {
        "tool": "Mocha Hook Failures Test Reporting",
        "type": "ui"
      },
      "retries": 0
    },
    {
      "name": "hook failures > flaky after all > test with flaky after all",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/hook-failures.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:08.346Z",
      "duration": {
        "total": 50,
        "final": 50
      },
      "taxonomy": {
        "tool": "Mocha Hook Failures Test Reporting",
        "type": "ui"
      },
      "retries": 0
    },
    {
      "name": "reporter 1 > passed",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/reporter-1.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:08.648Z",
      "duration": {
        "total": 50,
        "final": 50
      },
      "taxonomy": {
        "tool": "Mocha 1 Test Reporting",
        "type": "ui"
      },
      "retries": 0
    },
    {
      "name": "reporter 1 > skipped",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/reporter-1.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:09.201Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Mocha 1 Test Reporting",
        "type": "ui"
      },
      "retries": 0
    },
    {
      "name": "reporter 1 > flaky",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/reporter-1.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:09.202Z",
      "duration": {
        "total": 150,
        "final": 50
      },
      "taxonomy": {
        "tool": "Mocha 1 Test Reporting",
        "type": "ui"
      },
      "retries": 2
    },
    {
      "name": "reporter 1 > failed",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/reporter-1.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:10.860Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Mocha 1 Test Reporting",
        "type": "ui"
      },
      "retries": 3
    },
    {
      "name": "reporter 1 > special/characters \"(\\n\\r\\t\\b\\f)\"",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/reporter-1.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:12.867Z",
      "duration": {
        "total": 50,
        "final": 50
      },
      "taxonomy": {
        "tool": "Mocha 1 Test Reporting",
        "type": "ui"
      },
      "retries": 0
    },
    {
      "name": "reporter 2 > passed",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/reporter-2.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:13.921Z",
      "duration": {
        "total": 50,
        "final": 50
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "reporter 2 > skipped",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/reporter-2.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:14.474Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "reporter 2 > flaky",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/reporter-2.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:14.474Z",
      "duration": {
        "total": 150,
        "final": 50
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "integration"
      },
      "retries": 2
    },
    {
      "name": "reporter 2 > failed",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/reporter-2.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:16.132Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "integration"
      },
      "retries": 3
    },
    {
      "name": "reporter 2 > special/characters \"(\\n\\r\\t\\b\\f)\"",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/mocha/reporter-2.test.js"
      },
      "config": {
        "timeout": 2000
      },
      "started": "2026-05-28T18:47:18.141Z",
      "duration": {
        "total": 51,
        "final": 51
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "integration"
      },
      "retries": 0
    }
  ]
}
playwright 🟢

Schema: PASSED 🟢
Contents: PASSED 🟢

Report Contents

{
  "id": "a3bc877c-74ca-42a0-90e8-1b4bdf32777e",
  "version": 3,
  "summary": {
    "status": "failed",
    "github": {
      "organization": "Brightspace",
      "repository": "test-reporting-node",
      "workflow": "ci.yml",
      "runId": 26595088472,
      "runAttempt": 1
    },
    "git": {
      "branch": "depowell/mocha-hook-failure-handling",
      "sha": "cb7e0682471e53ed91e33e13467605e5f135195b"
    },
    "framework": "playwright",
    "operatingSystem": "linux",
    "started": "2026-05-28T18:47:25.618Z",
    "duration": {
      "total": 64831
    },
    "count": {
      "passed": 20,
      "failed": 5,
      "skipped": 30,
      "flaky": 5
    }
  },
  "details": [
    {
      "name": "[chromium] > reporter 1 > passed",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 16,
        "column": 2
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:27.255Z",
      "duration": {
        "total": 552,
        "final": 552
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 1 > skipped static",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 18,
        "column": 7
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:28.113Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 1 > skipped static, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 20,
        "column": 7
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:28.114Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 1 > failed",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 40,
        "column": 2
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:27.264Z",
      "duration": {
        "total": 2012,
        "final": 503
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 3
    },
    {
      "name": "[chromium] > reporter 1 > skipped dynamic",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 22,
        "column": 2
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:28.114Z",
      "duration": {
        "total": 503,
        "final": 503
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 1 > skipped dynamic, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 26,
        "column": 2
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:28.637Z",
      "duration": {
        "total": 504,
        "final": 504
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 1 > flaky",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 30,
        "column": 2
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:29.159Z",
      "duration": {
        "total": 1658,
        "final": 552
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 2
    },
    {
      "name": "[chromium] > reporter 2 > passed",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 16,
        "column": 2
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:33.666Z",
      "duration": {
        "total": 552,
        "final": 552
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 2 > skipped static",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 18,
        "column": 7
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:34.502Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 2 > skipped static, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 20,
        "column": 7
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:34.502Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 1 > failed static expected",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 42,
        "column": 7
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:34.201Z",
      "duration": {
        "total": 503,
        "final": 503
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 2 > skipped dynamic",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 22,
        "column": 2
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:34.502Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 1 > failed dynamic expected",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 44,
        "column": 2
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:35.005Z",
      "duration": {
        "total": 503,
        "final": 503
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 2 > skipped dynamic, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 26,
        "column": 2
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:35.021Z",
      "duration": {
        "total": 501,
        "final": 501
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 1 > failed static expected, skipped dynamic",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 50,
        "column": 7
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:35.525Z",
      "duration": {
        "total": 503,
        "final": 503
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 2 > flaky",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 30,
        "column": 2
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:35.547Z",
      "duration": {
        "total": 1657,
        "final": 552
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 2
    },
    {
      "name": "[chromium] > reporter 1 > failed static expected, skipped dynamic, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 56,
        "column": 7
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:36.044Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 1 > special/characters \"(\\n\\r\\t\\b\\f)\"",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 62,
        "column": 2
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:36.560Z",
      "duration": {
        "total": 556,
        "final": 556
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 2 > failed",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 40,
        "column": 2
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:37.405Z",
      "duration": {
        "total": 2011,
        "final": 503
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 3
    },
    {
      "name": "[chromium] > reporter 2 > failed static expected",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 42,
        "column": 7
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:44.288Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 2 > failed dynamic expected",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 44,
        "column": 2
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:45.092Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 2 > failed static expected, skipped dynamic",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 50,
        "column": 7
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:45.612Z",
      "duration": {
        "total": 501,
        "final": 501
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 2 > failed static expected, skipped dynamic, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 56,
        "column": 7
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:46.130Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[chromium] > reporter 2 > special/characters \"(\\n\\r\\t\\b\\f)\"",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 62,
        "column": 2
      },
      "browser": "chromium",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:46.647Z",
      "duration": {
        "total": 553,
        "final": 553
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[firefox] > reporter 2 > passed",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 16,
        "column": 2
      },
      "browser": "firefox",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:48.192Z",
      "duration": {
        "total": 552,
        "final": 552
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[firefox] > reporter 2 > skipped static",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 18,
        "column": 7
      },
      "browser": "firefox",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:49.048Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[firefox] > reporter 2 > skipped static, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 20,
        "column": 7
      },
      "browser": "firefox",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:49.049Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[firefox] > reporter 2 > skipped dynamic",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 22,
        "column": 2
      },
      "browser": "firefox",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:49.049Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[firefox] > reporter 2 > skipped dynamic, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 26,
        "column": 2
      },
      "browser": "firefox",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:49.572Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[firefox] > reporter 2 > flaky",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 30,
        "column": 2
      },
      "browser": "firefox",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:50.093Z",
      "duration": {
        "total": 1661,
        "final": 552
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 2
    },
    {
      "name": "[firefox] > reporter 2 > failed",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 40,
        "column": 2
      },
      "browser": "firefox",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:54.557Z",
      "duration": {
        "total": 2014,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 3
    },
    {
      "name": "[webkit] > reporter 1 > passed",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 16,
        "column": 2
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:56.964Z",
      "duration": {
        "total": 552,
        "final": 552
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 1 > skipped static",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 18,
        "column": 7
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:57.816Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 1 > skipped static, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 20,
        "column": 7
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:57.817Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 1 > skipped dynamic",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 22,
        "column": 2
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:57.817Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 1 > skipped dynamic, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 26,
        "column": 2
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:58.337Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 1 > flaky",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 30,
        "column": 2
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:47:58.855Z",
      "duration": {
        "total": 1658,
        "final": 552
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 2
    },
    {
      "name": "[firefox] > reporter 2 > failed static expected",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 42,
        "column": 7
      },
      "browser": "firefox",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:01.425Z",
      "duration": {
        "total": 506,
        "final": 506
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[firefox] > reporter 2 > failed dynamic expected",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 44,
        "column": 2
      },
      "browser": "firefox",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:02.244Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[firefox] > reporter 2 > failed static expected, skipped dynamic",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 50,
        "column": 7
      },
      "browser": "firefox",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:02.763Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[firefox] > reporter 2 > failed static expected, skipped dynamic, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 56,
        "column": 7
      },
      "browser": "firefox",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:03.282Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 1 > failed",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 40,
        "column": 2
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:03.227Z",
      "duration": {
        "total": 2012,
        "final": 503
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 3
    },
    {
      "name": "[firefox] > reporter 2 > special/characters \"(\\n\\r\\t\\b\\f)\"",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 62,
        "column": 2
      },
      "browser": "firefox",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:03.798Z",
      "duration": {
        "total": 552,
        "final": 552
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 2 > passed",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 16,
        "column": 2
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:05.312Z",
      "duration": {
        "total": 552,
        "final": 552
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 2 > skipped static",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 18,
        "column": 7
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:06.166Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 2 > skipped static, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 20,
        "column": 7
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:06.166Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 2 > skipped dynamic",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 22,
        "column": 2
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:06.166Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 2 > skipped dynamic, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 26,
        "column": 2
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:06.688Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 2 > flaky",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 30,
        "column": 2
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:07.210Z",
      "duration": {
        "total": 1658,
        "final": 552
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 2
    },
    {
      "name": "[webkit] > reporter 1 > failed static expected",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 42,
        "column": 7
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:10.179Z",
      "duration": {
        "total": 503,
        "final": 503
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 1 > failed dynamic expected",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 44,
        "column": 2
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:10.987Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 1 > failed static expected, skipped dynamic",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 50,
        "column": 7
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:11.508Z",
      "duration": {
        "total": 503,
        "final": 503
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 1 > failed static expected, skipped dynamic, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 56,
        "column": 7
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:12.026Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 2 > failed",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 40,
        "column": 2
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:11.676Z",
      "duration": {
        "total": 2012,
        "final": 503
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 3
    },
    {
      "name": "[webkit] > reporter 1 > special/characters \"(\\n\\r\\t\\b\\f)\"",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-1.test.js",
        "line": 62,
        "column": 2
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:12.543Z",
      "duration": {
        "total": 552,
        "final": 552
      },
      "taxonomy": {
        "tool": "Playwright 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 2 > failed static expected",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 42,
        "column": 7
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:18.656Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 2 > failed dynamic expected",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 44,
        "column": 2
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:19.462Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 2 > failed static expected, skipped dynamic",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 50,
        "column": 7
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:19.982Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 2 > failed static expected, skipped dynamic, fixme",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 56,
        "column": 7
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:20.503Z",
      "duration": {
        "total": 502,
        "final": 502
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    },
    {
      "name": "[webkit] > reporter 2 > special/characters \"(\\n\\r\\t\\b\\f)\"",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/playwright/reporter-2.test.js",
        "line": 62,
        "column": 2
      },
      "browser": "webkit",
      "config": {
        "timeout": 30000
      },
      "started": "2026-05-28T18:48:21.024Z",
      "duration": {
        "total": 552,
        "final": 552
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "visual diff"
      },
      "retries": 0
    }
  ]
}
@web/test-runner 🟢

Schema: PASSED 🟢
Contents: PASSED 🟢

Report Contents

{
  "id": "30a24fcb-d8cc-4d35-be32-ea04fd63e843",
  "version": 3,
  "summary": {
    "status": "failed",
    "github": {
      "organization": "Brightspace",
      "repository": "test-reporting-node",
      "workflow": "ci.yml",
      "runId": 26595088472,
      "runAttempt": 1
    },
    "git": {
      "branch": "depowell/mocha-hook-failure-handling",
      "sha": "cb7e0682471e53ed91e33e13467605e5f135195b"
    },
    "framework": "@web/test-runner",
    "operatingSystem": "linux",
    "started": "2026-05-28T18:48:31.722Z",
    "duration": {
      "total": 14134
    },
    "count": {
      "passed": 8,
      "failed": 4,
      "skipped": 4,
      "flaky": 0
    }
  },
  "details": [
    {
      "name": "reporter 1 > passed",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-1.test.js"
      },
      "browser": "chrome",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:31.756Z",
      "duration": {
        "total": 51,
        "final": 51
      },
      "taxonomy": {
        "tool": "WebTestRunner 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "reporter 1 > skipped",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-1.test.js"
      },
      "browser": "chrome",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:31.756Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "WebTestRunner 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "reporter 1 > failed",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-1.test.js"
      },
      "browser": "chrome",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:31.756Z",
      "duration": {
        "total": 2,
        "final": 2
      },
      "taxonomy": {
        "tool": "WebTestRunner 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "reporter 1 > special/characters \"(\\n\\r\\t\\b\\f)\"",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-1.test.js"
      },
      "browser": "chrome",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:31.756Z",
      "duration": {
        "total": 50,
        "final": 50
      },
      "taxonomy": {
        "tool": "WebTestRunner 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[group 1] > reporter 2 > passed",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-2.test.js"
      },
      "browser": "chromium",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:31.756Z",
      "duration": {
        "total": 50,
        "final": 50
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "accessibility"
      },
      "retries": 0
    },
    {
      "name": "[group 1] > reporter 2 > skipped",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-2.test.js"
      },
      "browser": "chromium",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:31.756Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "accessibility"
      },
      "retries": 0
    },
    {
      "name": "[group 1] > reporter 2 > failed",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-2.test.js"
      },
      "browser": "chromium",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:31.756Z",
      "duration": {
        "total": 1,
        "final": 1
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "accessibility"
      },
      "retries": 0
    },
    {
      "name": "[group 1] > reporter 2 > special/characters \"(\\n\\r\\t\\b\\f)\"",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-2.test.js"
      },
      "browser": "chromium",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:31.756Z",
      "duration": {
        "total": 50,
        "final": 50
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "accessibility"
      },
      "retries": 0
    },
    {
      "name": "[group 1] > reporter 2 > passed",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-2.test.js"
      },
      "browser": "firefox",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:31.756Z",
      "duration": {
        "total": 50,
        "final": 50
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "accessibility"
      },
      "retries": 0
    },
    {
      "name": "[group 1] > reporter 2 > skipped",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-2.test.js"
      },
      "browser": "firefox",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:31.756Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "accessibility"
      },
      "retries": 0
    },
    {
      "name": "[group 1] > reporter 2 > failed",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-2.test.js"
      },
      "browser": "firefox",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:31.756Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "accessibility"
      },
      "retries": 0
    },
    {
      "name": "[group 1] > reporter 2 > special/characters \"(\\n\\r\\t\\b\\f)\"",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-2.test.js"
      },
      "browser": "firefox",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:31.756Z",
      "duration": {
        "total": 51,
        "final": 51
      },
      "taxonomy": {
        "tool": "Test Reporting",
        "type": "accessibility"
      },
      "retries": 0
    },
    {
      "name": "[group 2] > reporter 1 > passed",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-1.test.js"
      },
      "browser": "webkit",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:44.826Z",
      "duration": {
        "total": 50,
        "final": 50
      },
      "taxonomy": {
        "tool": "WebTestRunner 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[group 2] > reporter 1 > skipped",
      "status": "skipped",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-1.test.js"
      },
      "browser": "webkit",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:44.826Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "WebTestRunner 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[group 2] > reporter 1 > failed",
      "status": "failed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-1.test.js"
      },
      "browser": "webkit",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:44.826Z",
      "duration": {
        "total": 0,
        "final": 0
      },
      "taxonomy": {
        "tool": "WebTestRunner 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    },
    {
      "name": "[group 2] > reporter 1 > special/characters \"(\\n\\r\\t\\b\\f)\"",
      "status": "passed",
      "github": {
        "codeowners": [
          "@Brightspace/quality-enablement"
        ]
      },
      "location": {
        "file": "test/integration/data/tests/web-test-runner/reporter-1.test.js"
      },
      "browser": "webkit",
      "config": {
        "timeout": 120000
      },
      "started": "2026-05-28T18:48:44.826Z",
      "duration": {
        "total": 52,
        "final": 52
      },
      "taxonomy": {
        "tool": "WebTestRunner 1 Test Reporting",
        "type": "integration"
      },
      "retries": 0
    }
  ]
}

@devpow112 devpow112 merged commit a2b018f into main May 28, 2026
4 checks passed
@devpow112 devpow112 deleted the depowell/mocha-hook-failure-handling branch May 28, 2026 18:49
@d2l-github-release-tokens
Copy link
Copy Markdown

🎉 This PR is included in version 5.2.11 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants