diff --git a/.github/workflows/playwright-report-test.yml b/.github/workflows/playwright-report-test.yml new file mode 100644 index 0000000..86332ff --- /dev/null +++ b/.github/workflows/playwright-report-test.yml @@ -0,0 +1,26 @@ +name: Playwright Test Report + +on: + workflow_run: + workflows: ['CI'] + types: + - completed + push: +jobs: + report: + name: Workflow test + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Check dirs + run: ls + - name: Test reporter + uses: ./ + with: + name: Workflow Report + path: playwright-report.xml + reporter: java-junit + show-html-notice: true + list-tests: 'non-skipped' + fail-on-error: false diff --git a/README.md b/README.md index 5fc21e7..f2d9e3c 100644 --- a/README.md +++ b/README.md @@ -156,6 +156,7 @@ jobs: # all # failed # none + # non-skipped (Only show passed / failed in the file lists) list-tests: 'all' # Limits number of created annotations with error message and stack trace captured during test execution. diff --git a/__tests__/__outputs__/playwright-output-all.md b/__tests__/__outputs__/playwright-output-all.md new file mode 100644 index 0000000..8b67a06 --- /dev/null +++ b/__tests__/__outputs__/playwright-output-all.md @@ -0,0 +1,97 @@ +![Tests failed](https://img.shields.io/badge/tests-36%20passed%2C%204%20failed%2C%2020%20skipped-critical) +## ❌ fixtures/external/java/playwright-report.xml +**60** tests were completed in **59s** with **36** passed, **4** failed and **20** skipped. +|Test suite|Passed|Failed|Skipped|Time| +|:---|---:|---:|---:|---:| +|[auth.setup.ts](#r0s0)|6✅|||7s| +|[tests/analyze/load-video.spec.ts](#r0s1)|||3⚪|0ms| +|[tests/analyze/seamless-video-playback.spec.ts](#r0s2)|||9⚪|12ms| +|[tests/app.spec.ts](#r0s3)|||1⚪|0ms| +|[tests/grid.spec.ts](#r0s4)|18✅|4❌|3⚪|116s| +|[tests/onboarding.spec.ts](#r0s5)|||4⚪|0ms| +|[tests/statsEngine.spec.ts](#r0s6)|12✅|||36s| +### ✅ auth.setup.ts +``` +✅ authenticate as classic admin +✅ authenticate as basketball admin +✅ authenticate as wrestling admin +✅ authenticate as onboarding admin 1 +✅ authenticate as onboarding admin 3 +✅ authenticate as coachAdmin +``` +### ✅ tests/analyze/load-video.spec.ts +``` +⚪ record "Time to Video" when loading directly via URL › using manual timings +⚪ record "Time to Video" when loading directly via URL › using Performance API mark +⚪ record "Time to Video" when loading directly via URL › using Performance API measurement +``` +### ✅ tests/analyze/seamless-video-playback.spec.ts +``` +⚪ during looping playback › when clip repeats, it starts at the beginning +⚪ during sequential playback ("Play All Clips" mode) › when one clip plays through to the next, overlapping video is skipped +⚪ in 'Play All Clips' mode, clip plays from beginning › when clicked on in navigation module +⚪ in 'Play All Clips' mode, clip plays from beginning › with next clip button +⚪ in 'Play All Clips' mode, clip plays from beginning › with previous clip button +⚪ in 'Loop Clips' mode, clip plays from beginning › when clicked on in navigation module +⚪ in 'Loop Clips' mode, clip plays from beginning › with next clip button +⚪ in 'Loop Clips' mode, clip plays from beginning › with previous clip button +⚪ rewind functions normally +``` +### ✅ tests/app.spec.ts +``` +⚪ App › logs in and loads page +``` +### ❌ tests/grid.spec.ts +``` +✅ Grid › Mobile Web › Athlete › should not be able to edit data +✅ Grid › Mobile Web › Admin or Coach › should be able to edit data +✅ Grid › Field Sets › should update displayed grid columns after editing +⚪ Grid › Field Sets › should update displayed clip preview fields after editing +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Scout team Points +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Opponent Rebounds +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Steals +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Rebounds +✅ Grid › Basketball Navigation Module › should display clips for opportunities in Period when filtered by Period +✅ Grid › Basketball Navigation Module › should display clips for opportunities that end in a turnover when filtered by Turnovers +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by 3FG Attempts +❌ Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column + [chrome] › tests/grid.spec.ts:202:11 › Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column › Sort grid by OFF FORM in ascending order +⚪ Grid › Column Sorting › Wrestling Column Sets › should display correct data when sorting by Period column +⚪ Grid › Quick Editor › should be able to edit data from quick editor as an admin or coach +❌ Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell + [chrome] › tests/grid.spec.ts:254:9 › Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell › double click into column OFF FORM clip number 3 +❌ Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data + [chrome] › tests/grid.spec.ts:261:9 › Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data › double click into column OFF FORM clip number 3 +❌ Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data + [chrome] › tests/grid.spec.ts:277:9 › Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data › Select BUNCH from column OFF FORM list +✅ Grid › Data Entry › should display error state for input with invalid data +✅ Grid › Data Entry › confirm auto-fill works correctly +✅ Grid › Tagged data › Wrestling › should display correct wrestler names tagged from Assist +✅ Grid › Tagged data › Wrestling › should display correct score and points tagged from Assist +✅ Grid › Tagged data › Wrestling › should display correct Period tagged from Assist +✅ Grid › Tagged data › Wrestling › should display correct Key Moments tagged from Assist +✅ Grid › Tagged data › Wrestling › should edit cells using the team roster +✅ Grid › Tagged data › Wrestling › should change key moment type and update grid data +``` +### ✅ tests/onboarding.spec.ts +``` +⚪ Grid › Onboarding › Field Visibility › should successfully display field visibility onboarding prompt +⚪ Grid › Onboarding › Field Visibility › Grid Hotkey Tooltip › should successfully display grid hotkey onboarding prompt +⚪ Grid › Onboarding › Field Visibility › Reorder Field Sets › should successfully display field reorder onboarding prompt +⚪ Grid › Onboarding › Field Visibility › Quick Edit › should successfully display quick edit onboarding prompt +``` +### ✅ tests/statsEngine.spec.ts +``` +✅ Mock stats engine for speed › Filter by Offense in Phase card +✅ Mock stats engine for speed › Filter by defense in phase card +✅ Mock stats engine for speed › Key stats card stats appear as expected when opponent is selected +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - FG percentage for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 2FG Makes for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 2FG Attempts for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 3FG Makes for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 3FG Attempts for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Off. Rebounds for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Def. Rebounds for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Assists for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Steal for Team in Context +``` \ No newline at end of file diff --git a/__tests__/__outputs__/playwright-output-failed.md b/__tests__/__outputs__/playwright-output-failed.md new file mode 100644 index 0000000..74b5148 --- /dev/null +++ b/__tests__/__outputs__/playwright-output-failed.md @@ -0,0 +1,38 @@ +![Tests failed](https://img.shields.io/badge/tests-36%20passed%2C%204%20failed%2C%2020%20skipped-critical) +## ❌ fixtures/external/java/playwright-report.xml +**60** tests were completed in **59s** with **36** passed, **4** failed and **20** skipped. +|Test suite|Passed|Failed|Skipped|Time| +|:---|---:|---:|---:|---:| +|[tests/grid.spec.ts](#r0s0)|18✅|4❌|3⚪|116s| +### ❌ tests/grid.spec.ts +``` +✅ Grid › Mobile Web › Athlete › should not be able to edit data +✅ Grid › Mobile Web › Admin or Coach › should be able to edit data +✅ Grid › Field Sets › should update displayed grid columns after editing +⚪ Grid › Field Sets › should update displayed clip preview fields after editing +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Scout team Points +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Opponent Rebounds +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Steals +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Rebounds +✅ Grid › Basketball Navigation Module › should display clips for opportunities in Period when filtered by Period +✅ Grid › Basketball Navigation Module › should display clips for opportunities that end in a turnover when filtered by Turnovers +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by 3FG Attempts +❌ Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column + [chrome] › tests/grid.spec.ts:202:11 › Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column › Sort grid by OFF FORM in ascending order +⚪ Grid › Column Sorting › Wrestling Column Sets › should display correct data when sorting by Period column +⚪ Grid › Quick Editor › should be able to edit data from quick editor as an admin or coach +❌ Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell + [chrome] › tests/grid.spec.ts:254:9 › Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell › double click into column OFF FORM clip number 3 +❌ Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data + [chrome] › tests/grid.spec.ts:261:9 › Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data › double click into column OFF FORM clip number 3 +❌ Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data + [chrome] › tests/grid.spec.ts:277:9 › Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data › Select BUNCH from column OFF FORM list +✅ Grid › Data Entry › should display error state for input with invalid data +✅ Grid › Data Entry › confirm auto-fill works correctly +✅ Grid › Tagged data › Wrestling › should display correct wrestler names tagged from Assist +✅ Grid › Tagged data › Wrestling › should display correct score and points tagged from Assist +✅ Grid › Tagged data › Wrestling › should display correct Period tagged from Assist +✅ Grid › Tagged data › Wrestling › should display correct Key Moments tagged from Assist +✅ Grid › Tagged data › Wrestling › should edit cells using the team roster +✅ Grid › Tagged data › Wrestling › should change key moment type and update grid data +``` \ No newline at end of file diff --git a/__tests__/__outputs__/playwright-output-no-skipped.md b/__tests__/__outputs__/playwright-output-no-skipped.md new file mode 100644 index 0000000..9190c86 --- /dev/null +++ b/__tests__/__outputs__/playwright-output-no-skipped.md @@ -0,0 +1,77 @@ +![Tests failed](https://img.shields.io/badge/tests-36%20passed%2C%204%20failed%2C%2020%20skipped-critical) +## ❌ fixtures/external/java/playwright-report.xml +**60** tests were completed in **59s** with **36** passed, **4** failed and **20** skipped. +|Test suite|Passed|Failed|Skipped|Time| +|:---|---:|---:|---:|---:| +|[auth.setup.ts](#r0s0)|6✅|||7s| +|[tests/analyze/load-video.spec.ts](#r0s1)|||3⚪|0ms| +|[tests/analyze/seamless-video-playback.spec.ts](#r0s2)|||9⚪|12ms| +|[tests/app.spec.ts](#r0s3)|||1⚪|0ms| +|[tests/grid.spec.ts](#r0s4)|18✅|4❌|3⚪|116s| +|[tests/onboarding.spec.ts](#r0s5)|||4⚪|0ms| +|[tests/statsEngine.spec.ts](#r0s6)|12✅|||36s| +### ✅ auth.setup.ts +``` +✅ authenticate as classic admin +✅ authenticate as basketball admin +✅ authenticate as wrestling admin +✅ authenticate as onboarding admin 1 +✅ authenticate as onboarding admin 3 +✅ authenticate as coachAdmin +``` +### ✅ tests/analyze/load-video.spec.ts +``` +``` +### ✅ tests/analyze/seamless-video-playback.spec.ts +``` +``` +### ✅ tests/app.spec.ts +``` +``` +### ❌ tests/grid.spec.ts +``` +✅ Grid › Mobile Web › Athlete › should not be able to edit data +✅ Grid › Mobile Web › Admin or Coach › should be able to edit data +✅ Grid › Field Sets › should update displayed grid columns after editing +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Scout team Points +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Opponent Rebounds +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Steals +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Rebounds +✅ Grid › Basketball Navigation Module › should display clips for opportunities in Period when filtered by Period +✅ Grid › Basketball Navigation Module › should display clips for opportunities that end in a turnover when filtered by Turnovers +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by 3FG Attempts +❌ Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column + [chrome] › tests/grid.spec.ts:202:11 › Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column › Sort grid by OFF FORM in ascending order +❌ Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell + [chrome] › tests/grid.spec.ts:254:9 › Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell › double click into column OFF FORM clip number 3 +❌ Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data + [chrome] › tests/grid.spec.ts:261:9 › Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data › double click into column OFF FORM clip number 3 +❌ Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data + [chrome] › tests/grid.spec.ts:277:9 › Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data › Select BUNCH from column OFF FORM list +✅ Grid › Data Entry › should display error state for input with invalid data +✅ Grid › Data Entry › confirm auto-fill works correctly +✅ Grid › Tagged data › Wrestling › should display correct wrestler names tagged from Assist +✅ Grid › Tagged data › Wrestling › should display correct score and points tagged from Assist +✅ Grid › Tagged data › Wrestling › should display correct Period tagged from Assist +✅ Grid › Tagged data › Wrestling › should display correct Key Moments tagged from Assist +✅ Grid › Tagged data › Wrestling › should edit cells using the team roster +✅ Grid › Tagged data › Wrestling › should change key moment type and update grid data +``` +### ✅ tests/onboarding.spec.ts +``` +``` +### ✅ tests/statsEngine.spec.ts +``` +✅ Mock stats engine for speed › Filter by Offense in Phase card +✅ Mock stats engine for speed › Filter by defense in phase card +✅ Mock stats engine for speed › Key stats card stats appear as expected when opponent is selected +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - FG percentage for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 2FG Makes for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 2FG Attempts for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 3FG Makes for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 3FG Attempts for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Off. Rebounds for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Def. Rebounds for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Assists for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Steal for Team in Context +``` \ No newline at end of file diff --git a/__tests__/__outputs__/playwright-output-summary.md b/__tests__/__outputs__/playwright-output-summary.md new file mode 100644 index 0000000..a1e9d4d --- /dev/null +++ b/__tests__/__outputs__/playwright-output-summary.md @@ -0,0 +1,4 @@ +![Tests failed](https://img.shields.io/badge/tests-36%20passed%2C%204%20failed%2C%2020%20skipped-critical) +|Report|Passed|Failed|Skipped|Time| +|:---|---:|---:|---:|---:| +|[fixtures/external/java/playwright-report.xml](#r0)|36✅|4❌|20⚪|59s| \ No newline at end of file diff --git a/__tests__/__outputs__/playwright-output.md b/__tests__/__outputs__/playwright-output.md new file mode 100644 index 0000000..8b67a06 --- /dev/null +++ b/__tests__/__outputs__/playwright-output.md @@ -0,0 +1,97 @@ +![Tests failed](https://img.shields.io/badge/tests-36%20passed%2C%204%20failed%2C%2020%20skipped-critical) +## ❌ fixtures/external/java/playwright-report.xml +**60** tests were completed in **59s** with **36** passed, **4** failed and **20** skipped. +|Test suite|Passed|Failed|Skipped|Time| +|:---|---:|---:|---:|---:| +|[auth.setup.ts](#r0s0)|6✅|||7s| +|[tests/analyze/load-video.spec.ts](#r0s1)|||3⚪|0ms| +|[tests/analyze/seamless-video-playback.spec.ts](#r0s2)|||9⚪|12ms| +|[tests/app.spec.ts](#r0s3)|||1⚪|0ms| +|[tests/grid.spec.ts](#r0s4)|18✅|4❌|3⚪|116s| +|[tests/onboarding.spec.ts](#r0s5)|||4⚪|0ms| +|[tests/statsEngine.spec.ts](#r0s6)|12✅|||36s| +### ✅ auth.setup.ts +``` +✅ authenticate as classic admin +✅ authenticate as basketball admin +✅ authenticate as wrestling admin +✅ authenticate as onboarding admin 1 +✅ authenticate as onboarding admin 3 +✅ authenticate as coachAdmin +``` +### ✅ tests/analyze/load-video.spec.ts +``` +⚪ record "Time to Video" when loading directly via URL › using manual timings +⚪ record "Time to Video" when loading directly via URL › using Performance API mark +⚪ record "Time to Video" when loading directly via URL › using Performance API measurement +``` +### ✅ tests/analyze/seamless-video-playback.spec.ts +``` +⚪ during looping playback › when clip repeats, it starts at the beginning +⚪ during sequential playback ("Play All Clips" mode) › when one clip plays through to the next, overlapping video is skipped +⚪ in 'Play All Clips' mode, clip plays from beginning › when clicked on in navigation module +⚪ in 'Play All Clips' mode, clip plays from beginning › with next clip button +⚪ in 'Play All Clips' mode, clip plays from beginning › with previous clip button +⚪ in 'Loop Clips' mode, clip plays from beginning › when clicked on in navigation module +⚪ in 'Loop Clips' mode, clip plays from beginning › with next clip button +⚪ in 'Loop Clips' mode, clip plays from beginning › with previous clip button +⚪ rewind functions normally +``` +### ✅ tests/app.spec.ts +``` +⚪ App › logs in and loads page +``` +### ❌ tests/grid.spec.ts +``` +✅ Grid › Mobile Web › Athlete › should not be able to edit data +✅ Grid › Mobile Web › Admin or Coach › should be able to edit data +✅ Grid › Field Sets › should update displayed grid columns after editing +⚪ Grid › Field Sets › should update displayed clip preview fields after editing +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Scout team Points +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Opponent Rebounds +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Steals +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by Rebounds +✅ Grid › Basketball Navigation Module › should display clips for opportunities in Period when filtered by Period +✅ Grid › Basketball Navigation Module › should display clips for opportunities that end in a turnover when filtered by Turnovers +✅ Grid › Basketball Navigation Module › should display correct moment data when filtered by 3FG Attempts +❌ Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column + [chrome] › tests/grid.spec.ts:202:11 › Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column › Sort grid by OFF FORM in ascending order +⚪ Grid › Column Sorting › Wrestling Column Sets › should display correct data when sorting by Period column +⚪ Grid › Quick Editor › should be able to edit data from quick editor as an admin or coach +❌ Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell + [chrome] › tests/grid.spec.ts:254:9 › Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell › double click into column OFF FORM clip number 3 +❌ Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data + [chrome] › tests/grid.spec.ts:261:9 › Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data › double click into column OFF FORM clip number 3 +❌ Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data + [chrome] › tests/grid.spec.ts:277:9 › Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data › Select BUNCH from column OFF FORM list +✅ Grid › Data Entry › should display error state for input with invalid data +✅ Grid › Data Entry › confirm auto-fill works correctly +✅ Grid › Tagged data › Wrestling › should display correct wrestler names tagged from Assist +✅ Grid › Tagged data › Wrestling › should display correct score and points tagged from Assist +✅ Grid › Tagged data › Wrestling › should display correct Period tagged from Assist +✅ Grid › Tagged data › Wrestling › should display correct Key Moments tagged from Assist +✅ Grid › Tagged data › Wrestling › should edit cells using the team roster +✅ Grid › Tagged data › Wrestling › should change key moment type and update grid data +``` +### ✅ tests/onboarding.spec.ts +``` +⚪ Grid › Onboarding › Field Visibility › should successfully display field visibility onboarding prompt +⚪ Grid › Onboarding › Field Visibility › Grid Hotkey Tooltip › should successfully display grid hotkey onboarding prompt +⚪ Grid › Onboarding › Field Visibility › Reorder Field Sets › should successfully display field reorder onboarding prompt +⚪ Grid › Onboarding › Field Visibility › Quick Edit › should successfully display quick edit onboarding prompt +``` +### ✅ tests/statsEngine.spec.ts +``` +✅ Mock stats engine for speed › Filter by Offense in Phase card +✅ Mock stats engine for speed › Filter by defense in phase card +✅ Mock stats engine for speed › Key stats card stats appear as expected when opponent is selected +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - FG percentage for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 2FG Makes for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 2FG Attempts for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 3FG Makes for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 3FG Attempts for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Off. Rebounds for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Def. Rebounds for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Assists for Team in Context +✅ Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Steal for Team in Context +``` \ No newline at end of file diff --git a/__tests__/__snapshots__/java-junit.test.ts.snap b/__tests__/__snapshots__/java-junit.test.ts.snap index 73c5f80..91c6a69 100644 --- a/__tests__/__snapshots__/java-junit.test.ts.snap +++ b/__tests__/__snapshots__/java-junit.test.ts.snap @@ -1,5 +1,2525 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`java-junit tests playwright test report - all tests 1`] = ` +TestRunResult { + "path": "fixtures/external/java/playwright-report.xml", + "suites": Array [ + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "authenticate as classic admin", + "result": "success", + "time": 1702, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as basketball admin", + "result": "success", + "time": 1734, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as wrestling admin", + "result": "success", + "time": 1697, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as onboarding admin 1", + "result": "success", + "time": 516, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as onboarding admin 3", + "result": "success", + "time": 527, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as coachAdmin", + "result": "success", + "time": 526, + }, + ], + }, + ], + "name": "auth.setup.ts", + "totalTime": 6702, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "record \\"Time to Video\\" when loading directly via URL › using manual timings", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "record \\"Time to Video\\" when loading directly via URL › using Performance API mark", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "record \\"Time to Video\\" when loading directly via URL › using Performance API measurement", + "result": "skipped", + "time": 0, + }, + ], + }, + ], + "name": "tests/analyze/load-video.spec.ts", + "totalTime": 0, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "during looping playback › when clip repeats, it starts at the beginning", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "during sequential playback (\\"Play All Clips\\" mode) › when one clip plays through to the next, overlapping video is skipped", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Play All Clips' mode, clip plays from beginning › when clicked on in navigation module", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Play All Clips' mode, clip plays from beginning › with next clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Play All Clips' mode, clip plays from beginning › with previous clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Loop Clips' mode, clip plays from beginning › when clicked on in navigation module", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Loop Clips' mode, clip plays from beginning › with next clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Loop Clips' mode, clip plays from beginning › with previous clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "rewind functions normally", + "result": "skipped", + "time": 12, + }, + ], + }, + ], + "name": "tests/analyze/seamless-video-playback.spec.ts", + "totalTime": 12, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "App › logs in and loads page", + "result": "skipped", + "time": 0, + }, + ], + }, + ], + "name": "tests/app.spec.ts", + "totalTime": 0, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "Grid › Mobile Web › Athlete › should not be able to edit data", + "result": "success", + "time": 2968, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Mobile Web › Admin or Coach › should be able to edit data", + "result": "success", + "time": 5762, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Field Sets › should update displayed grid columns after editing", + "result": "success", + "time": 9215, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Field Sets › should update displayed clip preview fields after editing", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Scout team Points", + "result": "success", + "time": 3150, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Opponent Rebounds", + "result": "success", + "time": 5091, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Steals", + "result": "success", + "time": 4261, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Rebounds", + "result": "success", + "time": 2860, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display clips for opportunities in Period when filtered by Period", + "result": "success", + "time": 3501, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display clips for opportunities that end in a turnover when filtered by Turnovers", + "result": "success", + "time": 3721, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by 3FG Attempts", + "result": "success", + "time": 3282, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:202:11 › Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column › Sort grid by OFF FORM in ascending order + + Test timeout of 10000ms exceeded. + + Error: locator.click: Target closed + =========================== logs =========================== + waiting for locator('[data-qa-id^=\\"column-header-OFF FORM-\\"]') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/table.locator.ts:12 + + 10 | const expectedColumnSort = this.locator.filter({ has: this.page.locator(\`[data-qa-id*='\${sortOrder}']\`) }); + 11 | do { + > 12 | await this.locator.click(); + | ^ + 13 | } while (!expectedColumnSort.isVisible()); + 14 | } + 15 | } + + at TableLocator.sortColumnBy (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/table.locator.ts:12:26) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:30:52 + at GridActions.sortColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:28:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:205:27 + + Pending operations: + - locator.click at ../../packages/playwright-shared/src/models/locators/table.locator.ts:12:26 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Column Sorting › Wrestling Column Sets › should display correct data when sorting by Period column", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Quick Editor › should be able to edit data from quick editor as an admin or coach", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:254:9 › Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell › double click into column OFF FORM clip number 3 + + Test timeout of 10000ms exceeded. + + Error: locator.dblclick: Target closed + =========================== logs =========================== + waiting for locator('div[data-qa-id=\\\\'OFF FORM-column-3\\\\']') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17 + + 15 | + 16 | async doubleClick() { + > 17 | await this.locator.dblclick(); + | ^ + 18 | } + 19 | + 20 | async getText() { + + at TextInputLocator.doubleClick (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:48:63 + at GridActions.doubleClickIntoGridColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:47:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:256:25 + + Pending operations: + - locator.dblclick at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:261:9 › Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data › double click into column OFF FORM clip number 3 + + Test timeout of 10000ms exceeded. + + Error: locator.dblclick: Target closed + =========================== logs =========================== + waiting for locator('div[data-qa-id=\\\\'OFF FORM-column-3\\\\']') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17 + + 15 | + 16 | async doubleClick() { + > 17 | await this.locator.dblclick(); + | ^ + 18 | } + 19 | + 20 | async getText() { + + at TextInputLocator.doubleClick (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:48:63 + at GridActions.doubleClickIntoGridColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:47:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:263:25 + + Pending operations: + - locator.dblclick at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:277:9 › Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data › Select BUNCH from column OFF FORM list + + Test timeout of 10000ms exceeded. + + Error: locator.click: Target closed + =========================== logs =========================== + waiting for locator('[data-qa-id=\\"clip-edit-field-OFF FORM\\"]') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/base/base.locator.ts:13 + + 11 | + 12 | async click(force: boolean = false) { + > 13 | await this.locator.click({ force }); + | ^ + 14 | } + 15 | + 16 | async doubleClick() { + + at SelectLocator.click (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:13:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:93:58 + at GridActions.enterGridSelectValue (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:92:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:279:25 + + Pending operations: + - locator.click at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:13:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Data Entry › should display error state for input with invalid data", + "result": "success", + "time": 5853, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Data Entry › confirm auto-fill works correctly", + "result": "success", + "time": 5021, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct wrestler names tagged from Assist", + "result": "success", + "time": 2522, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct score and points tagged from Assist", + "result": "success", + "time": 2655, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct Period tagged from Assist", + "result": "success", + "time": 2666, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct Key Moments tagged from Assist", + "result": "success", + "time": 2908, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should edit cells using the team roster", + "result": "success", + "time": 4794, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should change key moment type and update grid data", + "result": "success", + "time": 5662, + }, + ], + }, + ], + "name": "tests/grid.spec.ts", + "totalTime": 115892, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › should successfully display field visibility onboarding prompt", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › Grid Hotkey Tooltip › should successfully display grid hotkey onboarding prompt", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › Reorder Field Sets › should successfully display field reorder onboarding prompt", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › Quick Edit › should successfully display quick edit onboarding prompt", + "result": "skipped", + "time": 0, + }, + ], + }, + ], + "name": "tests/onboarding.spec.ts", + "totalTime": 0, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Filter by Offense in Phase card", + "result": "success", + "time": 3542, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Filter by defense in phase card", + "result": "success", + "time": 2471, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Key stats card stats appear as expected when opponent is selected", + "result": "success", + "time": 3207, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - FG percentage for Team in Context", + "result": "success", + "time": 2932, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 2FG Makes for Team in Context", + "result": "success", + "time": 3549, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 2FG Attempts for Team in Context", + "result": "success", + "time": 2802, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 3FG Makes for Team in Context", + "result": "success", + "time": 2949, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 3FG Attempts for Team in Context", + "result": "success", + "time": 2937, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Off. Rebounds for Team in Context", + "result": "success", + "time": 3277, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Def. Rebounds for Team in Context", + "result": "success", + "time": 2799, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Assists for Team in Context", + "result": "success", + "time": 3056, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Steal for Team in Context", + "result": "success", + "time": 2850, + }, + ], + }, + ], + "name": "tests/statsEngine.spec.ts", + "totalTime": 36371, + }, + ], + "totalTime": 59092.58599999547, +} +`; + +exports[`java-junit tests playwright test report - ignore skipped tests 1`] = ` +TestRunResult { + "path": "fixtures/external/java/playwright-report.xml", + "suites": Array [ + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "authenticate as classic admin", + "result": "success", + "time": 1702, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as basketball admin", + "result": "success", + "time": 1734, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as wrestling admin", + "result": "success", + "time": 1697, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as onboarding admin 1", + "result": "success", + "time": 516, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as onboarding admin 3", + "result": "success", + "time": 527, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as coachAdmin", + "result": "success", + "time": 526, + }, + ], + }, + ], + "name": "auth.setup.ts", + "totalTime": 6702, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "record \\"Time to Video\\" when loading directly via URL › using manual timings", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "record \\"Time to Video\\" when loading directly via URL › using Performance API mark", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "record \\"Time to Video\\" when loading directly via URL › using Performance API measurement", + "result": "skipped", + "time": 0, + }, + ], + }, + ], + "name": "tests/analyze/load-video.spec.ts", + "totalTime": 0, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "during looping playback › when clip repeats, it starts at the beginning", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "during sequential playback (\\"Play All Clips\\" mode) › when one clip plays through to the next, overlapping video is skipped", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Play All Clips' mode, clip plays from beginning › when clicked on in navigation module", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Play All Clips' mode, clip plays from beginning › with next clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Play All Clips' mode, clip plays from beginning › with previous clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Loop Clips' mode, clip plays from beginning › when clicked on in navigation module", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Loop Clips' mode, clip plays from beginning › with next clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Loop Clips' mode, clip plays from beginning › with previous clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "rewind functions normally", + "result": "skipped", + "time": 12, + }, + ], + }, + ], + "name": "tests/analyze/seamless-video-playback.spec.ts", + "totalTime": 12, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "App › logs in and loads page", + "result": "skipped", + "time": 0, + }, + ], + }, + ], + "name": "tests/app.spec.ts", + "totalTime": 0, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "Grid › Mobile Web › Athlete › should not be able to edit data", + "result": "success", + "time": 2968, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Mobile Web › Admin or Coach › should be able to edit data", + "result": "success", + "time": 5762, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Field Sets › should update displayed grid columns after editing", + "result": "success", + "time": 9215, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Field Sets › should update displayed clip preview fields after editing", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Scout team Points", + "result": "success", + "time": 3150, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Opponent Rebounds", + "result": "success", + "time": 5091, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Steals", + "result": "success", + "time": 4261, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Rebounds", + "result": "success", + "time": 2860, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display clips for opportunities in Period when filtered by Period", + "result": "success", + "time": 3501, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display clips for opportunities that end in a turnover when filtered by Turnovers", + "result": "success", + "time": 3721, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by 3FG Attempts", + "result": "success", + "time": 3282, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:202:11 › Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column › Sort grid by OFF FORM in ascending order + + Test timeout of 10000ms exceeded. + + Error: locator.click: Target closed + =========================== logs =========================== + waiting for locator('[data-qa-id^=\\"column-header-OFF FORM-\\"]') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/table.locator.ts:12 + + 10 | const expectedColumnSort = this.locator.filter({ has: this.page.locator(\`[data-qa-id*='\${sortOrder}']\`) }); + 11 | do { + > 12 | await this.locator.click(); + | ^ + 13 | } while (!expectedColumnSort.isVisible()); + 14 | } + 15 | } + + at TableLocator.sortColumnBy (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/table.locator.ts:12:26) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:30:52 + at GridActions.sortColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:28:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:205:27 + + Pending operations: + - locator.click at ../../packages/playwright-shared/src/models/locators/table.locator.ts:12:26 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Column Sorting › Wrestling Column Sets › should display correct data when sorting by Period column", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Quick Editor › should be able to edit data from quick editor as an admin or coach", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:254:9 › Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell › double click into column OFF FORM clip number 3 + + Test timeout of 10000ms exceeded. + + Error: locator.dblclick: Target closed + =========================== logs =========================== + waiting for locator('div[data-qa-id=\\\\'OFF FORM-column-3\\\\']') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17 + + 15 | + 16 | async doubleClick() { + > 17 | await this.locator.dblclick(); + | ^ + 18 | } + 19 | + 20 | async getText() { + + at TextInputLocator.doubleClick (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:48:63 + at GridActions.doubleClickIntoGridColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:47:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:256:25 + + Pending operations: + - locator.dblclick at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:261:9 › Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data › double click into column OFF FORM clip number 3 + + Test timeout of 10000ms exceeded. + + Error: locator.dblclick: Target closed + =========================== logs =========================== + waiting for locator('div[data-qa-id=\\\\'OFF FORM-column-3\\\\']') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17 + + 15 | + 16 | async doubleClick() { + > 17 | await this.locator.dblclick(); + | ^ + 18 | } + 19 | + 20 | async getText() { + + at TextInputLocator.doubleClick (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:48:63 + at GridActions.doubleClickIntoGridColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:47:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:263:25 + + Pending operations: + - locator.dblclick at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:277:9 › Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data › Select BUNCH from column OFF FORM list + + Test timeout of 10000ms exceeded. + + Error: locator.click: Target closed + =========================== logs =========================== + waiting for locator('[data-qa-id=\\"clip-edit-field-OFF FORM\\"]') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/base/base.locator.ts:13 + + 11 | + 12 | async click(force: boolean = false) { + > 13 | await this.locator.click({ force }); + | ^ + 14 | } + 15 | + 16 | async doubleClick() { + + at SelectLocator.click (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:13:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:93:58 + at GridActions.enterGridSelectValue (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:92:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:279:25 + + Pending operations: + - locator.click at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:13:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Data Entry › should display error state for input with invalid data", + "result": "success", + "time": 5853, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Data Entry › confirm auto-fill works correctly", + "result": "success", + "time": 5021, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct wrestler names tagged from Assist", + "result": "success", + "time": 2522, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct score and points tagged from Assist", + "result": "success", + "time": 2655, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct Period tagged from Assist", + "result": "success", + "time": 2666, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct Key Moments tagged from Assist", + "result": "success", + "time": 2908, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should edit cells using the team roster", + "result": "success", + "time": 4794, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should change key moment type and update grid data", + "result": "success", + "time": 5662, + }, + ], + }, + ], + "name": "tests/grid.spec.ts", + "totalTime": 115892, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › should successfully display field visibility onboarding prompt", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › Grid Hotkey Tooltip › should successfully display grid hotkey onboarding prompt", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › Reorder Field Sets › should successfully display field reorder onboarding prompt", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › Quick Edit › should successfully display quick edit onboarding prompt", + "result": "skipped", + "time": 0, + }, + ], + }, + ], + "name": "tests/onboarding.spec.ts", + "totalTime": 0, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Filter by Offense in Phase card", + "result": "success", + "time": 3542, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Filter by defense in phase card", + "result": "success", + "time": 2471, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Key stats card stats appear as expected when opponent is selected", + "result": "success", + "time": 3207, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - FG percentage for Team in Context", + "result": "success", + "time": 2932, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 2FG Makes for Team in Context", + "result": "success", + "time": 3549, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 2FG Attempts for Team in Context", + "result": "success", + "time": 2802, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 3FG Makes for Team in Context", + "result": "success", + "time": 2949, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 3FG Attempts for Team in Context", + "result": "success", + "time": 2937, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Off. Rebounds for Team in Context", + "result": "success", + "time": 3277, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Def. Rebounds for Team in Context", + "result": "success", + "time": 2799, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Assists for Team in Context", + "result": "success", + "time": 3056, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Steal for Team in Context", + "result": "success", + "time": 2850, + }, + ], + }, + ], + "name": "tests/statsEngine.spec.ts", + "totalTime": 36371, + }, + ], + "totalTime": 59092.58599999547, +} +`; + +exports[`java-junit tests playwright test report - only failed 1`] = ` +TestRunResult { + "path": "fixtures/external/java/playwright-report.xml", + "suites": Array [ + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "authenticate as classic admin", + "result": "success", + "time": 1702, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as basketball admin", + "result": "success", + "time": 1734, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as wrestling admin", + "result": "success", + "time": 1697, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as onboarding admin 1", + "result": "success", + "time": 516, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as onboarding admin 3", + "result": "success", + "time": 527, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as coachAdmin", + "result": "success", + "time": 526, + }, + ], + }, + ], + "name": "auth.setup.ts", + "totalTime": 6702, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "record \\"Time to Video\\" when loading directly via URL › using manual timings", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "record \\"Time to Video\\" when loading directly via URL › using Performance API mark", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "record \\"Time to Video\\" when loading directly via URL › using Performance API measurement", + "result": "skipped", + "time": 0, + }, + ], + }, + ], + "name": "tests/analyze/load-video.spec.ts", + "totalTime": 0, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "during looping playback › when clip repeats, it starts at the beginning", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "during sequential playback (\\"Play All Clips\\" mode) › when one clip plays through to the next, overlapping video is skipped", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Play All Clips' mode, clip plays from beginning › when clicked on in navigation module", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Play All Clips' mode, clip plays from beginning › with next clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Play All Clips' mode, clip plays from beginning › with previous clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Loop Clips' mode, clip plays from beginning › when clicked on in navigation module", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Loop Clips' mode, clip plays from beginning › with next clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Loop Clips' mode, clip plays from beginning › with previous clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "rewind functions normally", + "result": "skipped", + "time": 12, + }, + ], + }, + ], + "name": "tests/analyze/seamless-video-playback.spec.ts", + "totalTime": 12, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "App › logs in and loads page", + "result": "skipped", + "time": 0, + }, + ], + }, + ], + "name": "tests/app.spec.ts", + "totalTime": 0, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "Grid › Mobile Web › Athlete › should not be able to edit data", + "result": "success", + "time": 2968, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Mobile Web › Admin or Coach › should be able to edit data", + "result": "success", + "time": 5762, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Field Sets › should update displayed grid columns after editing", + "result": "success", + "time": 9215, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Field Sets › should update displayed clip preview fields after editing", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Scout team Points", + "result": "success", + "time": 3150, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Opponent Rebounds", + "result": "success", + "time": 5091, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Steals", + "result": "success", + "time": 4261, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Rebounds", + "result": "success", + "time": 2860, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display clips for opportunities in Period when filtered by Period", + "result": "success", + "time": 3501, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display clips for opportunities that end in a turnover when filtered by Turnovers", + "result": "success", + "time": 3721, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by 3FG Attempts", + "result": "success", + "time": 3282, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:202:11 › Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column › Sort grid by OFF FORM in ascending order + + Test timeout of 10000ms exceeded. + + Error: locator.click: Target closed + =========================== logs =========================== + waiting for locator('[data-qa-id^=\\"column-header-OFF FORM-\\"]') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/table.locator.ts:12 + + 10 | const expectedColumnSort = this.locator.filter({ has: this.page.locator(\`[data-qa-id*='\${sortOrder}']\`) }); + 11 | do { + > 12 | await this.locator.click(); + | ^ + 13 | } while (!expectedColumnSort.isVisible()); + 14 | } + 15 | } + + at TableLocator.sortColumnBy (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/table.locator.ts:12:26) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:30:52 + at GridActions.sortColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:28:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:205:27 + + Pending operations: + - locator.click at ../../packages/playwright-shared/src/models/locators/table.locator.ts:12:26 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Column Sorting › Wrestling Column Sets › should display correct data when sorting by Period column", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Quick Editor › should be able to edit data from quick editor as an admin or coach", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:254:9 › Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell › double click into column OFF FORM clip number 3 + + Test timeout of 10000ms exceeded. + + Error: locator.dblclick: Target closed + =========================== logs =========================== + waiting for locator('div[data-qa-id=\\\\'OFF FORM-column-3\\\\']') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17 + + 15 | + 16 | async doubleClick() { + > 17 | await this.locator.dblclick(); + | ^ + 18 | } + 19 | + 20 | async getText() { + + at TextInputLocator.doubleClick (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:48:63 + at GridActions.doubleClickIntoGridColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:47:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:256:25 + + Pending operations: + - locator.dblclick at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:261:9 › Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data › double click into column OFF FORM clip number 3 + + Test timeout of 10000ms exceeded. + + Error: locator.dblclick: Target closed + =========================== logs =========================== + waiting for locator('div[data-qa-id=\\\\'OFF FORM-column-3\\\\']') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17 + + 15 | + 16 | async doubleClick() { + > 17 | await this.locator.dblclick(); + | ^ + 18 | } + 19 | + 20 | async getText() { + + at TextInputLocator.doubleClick (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:48:63 + at GridActions.doubleClickIntoGridColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:47:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:263:25 + + Pending operations: + - locator.dblclick at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:277:9 › Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data › Select BUNCH from column OFF FORM list + + Test timeout of 10000ms exceeded. + + Error: locator.click: Target closed + =========================== logs =========================== + waiting for locator('[data-qa-id=\\"clip-edit-field-OFF FORM\\"]') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/base/base.locator.ts:13 + + 11 | + 12 | async click(force: boolean = false) { + > 13 | await this.locator.click({ force }); + | ^ + 14 | } + 15 | + 16 | async doubleClick() { + + at SelectLocator.click (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:13:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:93:58 + at GridActions.enterGridSelectValue (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:92:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:279:25 + + Pending operations: + - locator.click at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:13:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Data Entry › should display error state for input with invalid data", + "result": "success", + "time": 5853, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Data Entry › confirm auto-fill works correctly", + "result": "success", + "time": 5021, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct wrestler names tagged from Assist", + "result": "success", + "time": 2522, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct score and points tagged from Assist", + "result": "success", + "time": 2655, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct Period tagged from Assist", + "result": "success", + "time": 2666, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct Key Moments tagged from Assist", + "result": "success", + "time": 2908, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should edit cells using the team roster", + "result": "success", + "time": 4794, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should change key moment type and update grid data", + "result": "success", + "time": 5662, + }, + ], + }, + ], + "name": "tests/grid.spec.ts", + "totalTime": 115892, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › should successfully display field visibility onboarding prompt", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › Grid Hotkey Tooltip › should successfully display grid hotkey onboarding prompt", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › Reorder Field Sets › should successfully display field reorder onboarding prompt", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › Quick Edit › should successfully display quick edit onboarding prompt", + "result": "skipped", + "time": 0, + }, + ], + }, + ], + "name": "tests/onboarding.spec.ts", + "totalTime": 0, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Filter by Offense in Phase card", + "result": "success", + "time": 3542, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Filter by defense in phase card", + "result": "success", + "time": 2471, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Key stats card stats appear as expected when opponent is selected", + "result": "success", + "time": 3207, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - FG percentage for Team in Context", + "result": "success", + "time": 2932, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 2FG Makes for Team in Context", + "result": "success", + "time": 3549, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 2FG Attempts for Team in Context", + "result": "success", + "time": 2802, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 3FG Makes for Team in Context", + "result": "success", + "time": 2949, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 3FG Attempts for Team in Context", + "result": "success", + "time": 2937, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Off. Rebounds for Team in Context", + "result": "success", + "time": 3277, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Def. Rebounds for Team in Context", + "result": "success", + "time": 2799, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Assists for Team in Context", + "result": "success", + "time": 3056, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Steal for Team in Context", + "result": "success", + "time": 2850, + }, + ], + }, + ], + "name": "tests/statsEngine.spec.ts", + "totalTime": 36371, + }, + ], + "totalTime": 59092.58599999547, +} +`; + +exports[`java-junit tests playwright test report - only summary 1`] = ` +TestRunResult { + "path": "fixtures/external/java/playwright-report.xml", + "suites": Array [ + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "authenticate as classic admin", + "result": "success", + "time": 1702, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as basketball admin", + "result": "success", + "time": 1734, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as wrestling admin", + "result": "success", + "time": 1697, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as onboarding admin 1", + "result": "success", + "time": 516, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as onboarding admin 3", + "result": "success", + "time": 527, + }, + TestCaseResult { + "error": undefined, + "name": "authenticate as coachAdmin", + "result": "success", + "time": 526, + }, + ], + }, + ], + "name": "auth.setup.ts", + "totalTime": 6702, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "record \\"Time to Video\\" when loading directly via URL › using manual timings", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "record \\"Time to Video\\" when loading directly via URL › using Performance API mark", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "record \\"Time to Video\\" when loading directly via URL › using Performance API measurement", + "result": "skipped", + "time": 0, + }, + ], + }, + ], + "name": "tests/analyze/load-video.spec.ts", + "totalTime": 0, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "during looping playback › when clip repeats, it starts at the beginning", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "during sequential playback (\\"Play All Clips\\" mode) › when one clip plays through to the next, overlapping video is skipped", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Play All Clips' mode, clip plays from beginning › when clicked on in navigation module", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Play All Clips' mode, clip plays from beginning › with next clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Play All Clips' mode, clip plays from beginning › with previous clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Loop Clips' mode, clip plays from beginning › when clicked on in navigation module", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Loop Clips' mode, clip plays from beginning › with next clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "in 'Loop Clips' mode, clip plays from beginning › with previous clip button", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "rewind functions normally", + "result": "skipped", + "time": 12, + }, + ], + }, + ], + "name": "tests/analyze/seamless-video-playback.spec.ts", + "totalTime": 12, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "App › logs in and loads page", + "result": "skipped", + "time": 0, + }, + ], + }, + ], + "name": "tests/app.spec.ts", + "totalTime": 0, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "Grid › Mobile Web › Athlete › should not be able to edit data", + "result": "success", + "time": 2968, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Mobile Web › Admin or Coach › should be able to edit data", + "result": "success", + "time": 5762, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Field Sets › should update displayed grid columns after editing", + "result": "success", + "time": 9215, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Field Sets › should update displayed clip preview fields after editing", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Scout team Points", + "result": "success", + "time": 3150, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Opponent Rebounds", + "result": "success", + "time": 5091, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Steals", + "result": "success", + "time": 4261, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by Rebounds", + "result": "success", + "time": 2860, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display clips for opportunities in Period when filtered by Period", + "result": "success", + "time": 3501, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display clips for opportunities that end in a turnover when filtered by Turnovers", + "result": "success", + "time": 3721, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Basketball Navigation Module › should display correct moment data when filtered by 3FG Attempts", + "result": "success", + "time": 3282, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:202:11 › Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column › Sort grid by OFF FORM in ascending order + + Test timeout of 10000ms exceeded. + + Error: locator.click: Target closed + =========================== logs =========================== + waiting for locator('[data-qa-id^=\\"column-header-OFF FORM-\\"]') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/table.locator.ts:12 + + 10 | const expectedColumnSort = this.locator.filter({ has: this.page.locator(\`[data-qa-id*='\${sortOrder}']\`) }); + 11 | do { + > 12 | await this.locator.click(); + | ^ + 13 | } while (!expectedColumnSort.isVisible()); + 14 | } + 15 | } + + at TableLocator.sortColumnBy (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/table.locator.ts:12:26) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:30:52 + at GridActions.sortColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:28:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:205:27 + + Pending operations: + - locator.click at ../../packages/playwright-shared/src/models/locators/table.locator.ts:12:26 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Column Sorting › AmFb Column Sets › should display correct data when sorting by OFF FORM column", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Column Sorting › Wrestling Column Sets › should display correct data when sorting by Period column", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Quick Editor › should be able to edit data from quick editor as an admin or coach", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:254:9 › Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell › double click into column OFF FORM clip number 3 + + Test timeout of 10000ms exceeded. + + Error: locator.dblclick: Target closed + =========================== logs =========================== + waiting for locator('div[data-qa-id=\\\\'OFF FORM-column-3\\\\']') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17 + + 15 | + 16 | async doubleClick() { + > 17 | await this.locator.dblclick(); + | ^ + 18 | } + 19 | + 20 | async getText() { + + at TextInputLocator.doubleClick (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:48:63 + at GridActions.doubleClickIntoGridColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:47:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:256:25 + + Pending operations: + - locator.dblclick at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Data Entry › should open select dropdown options when pressing Spacebar in grid cell", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:261:9 › Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data › double click into column OFF FORM clip number 3 + + Test timeout of 10000ms exceeded. + + Error: locator.dblclick: Target closed + =========================== logs =========================== + waiting for locator('div[data-qa-id=\\\\'OFF FORM-column-3\\\\']') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17 + + 15 | + 16 | async doubleClick() { + > 17 | await this.locator.dblclick(); + | ^ + 18 | } + 19 | + 20 | async getText() { + + at TextInputLocator.doubleClick (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:48:63 + at GridActions.doubleClickIntoGridColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:47:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:263:25 + + Pending operations: + - locator.dblclick at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Data Entry › should be able to use keyboard to navigate horizontal grid and enter data", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": Object { + "details": " + [chrome] › tests/grid.spec.ts:277:9 › Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data › Select BUNCH from column OFF FORM list + + Test timeout of 10000ms exceeded. + + Error: locator.click: Target closed + =========================== logs =========================== + waiting for locator('[data-qa-id=\\"clip-edit-field-OFF FORM\\"]') + ============================================================ + + at ../../../packages/playwright-shared/src/models/locators/base/base.locator.ts:13 + + 11 | + 12 | async click(force: boolean = false) { + > 13 | await this.locator.click({ force }); + | ^ + 14 | } + 15 | + 16 | async doubleClick() { + + at SelectLocator.click (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:13:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:93:58 + at GridActions.enterGridSelectValue (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:92:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:279:25 + + Pending operations: + - locator.click at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:13:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + +", + "line": undefined, + "message": undefined, + "path": undefined, + }, + "name": "Grid › Data Entry › should be able to use keyboard to navigate vertical grid and enter data", + "result": "failed", + "time": 10000, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Data Entry › should display error state for input with invalid data", + "result": "success", + "time": 5853, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Data Entry › confirm auto-fill works correctly", + "result": "success", + "time": 5021, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct wrestler names tagged from Assist", + "result": "success", + "time": 2522, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct score and points tagged from Assist", + "result": "success", + "time": 2655, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct Period tagged from Assist", + "result": "success", + "time": 2666, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should display correct Key Moments tagged from Assist", + "result": "success", + "time": 2908, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should edit cells using the team roster", + "result": "success", + "time": 4794, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Tagged data › Wrestling › should change key moment type and update grid data", + "result": "success", + "time": 5662, + }, + ], + }, + ], + "name": "tests/grid.spec.ts", + "totalTime": 115892, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › should successfully display field visibility onboarding prompt", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › Grid Hotkey Tooltip › should successfully display grid hotkey onboarding prompt", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › Reorder Field Sets › should successfully display field reorder onboarding prompt", + "result": "skipped", + "time": 0, + }, + TestCaseResult { + "error": undefined, + "name": "Grid › Onboarding › Field Visibility › Quick Edit › should successfully display quick edit onboarding prompt", + "result": "skipped", + "time": 0, + }, + ], + }, + ], + "name": "tests/onboarding.spec.ts", + "totalTime": 0, + }, + TestSuiteResult { + "groups": Array [ + TestGroupResult { + "name": "", + "tests": Array [ + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Filter by Offense in Phase card", + "result": "success", + "time": 3542, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Filter by defense in phase card", + "result": "success", + "time": 2471, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Key stats card stats appear as expected when opponent is selected", + "result": "success", + "time": 3207, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - FG percentage for Team in Context", + "result": "success", + "time": 2932, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 2FG Makes for Team in Context", + "result": "success", + "time": 3549, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 2FG Attempts for Team in Context", + "result": "success", + "time": 2802, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 3FG Makes for Team in Context", + "result": "success", + "time": 2949, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - 3FG Attempts for Team in Context", + "result": "success", + "time": 2937, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Off. Rebounds for Team in Context", + "result": "success", + "time": 3277, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Def. Rebounds for Team in Context", + "result": "success", + "time": 2799, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Assists for Team in Context", + "result": "success", + "time": 3056, + }, + TestCaseResult { + "error": undefined, + "name": "Mock stats engine for speed › Selecting a Key Stats filter updates both the Navigation Module and Insights Module cards - Steal for Team in Context", + "result": "success", + "time": 2850, + }, + ], + }, + ], + "name": "tests/statsEngine.spec.ts", + "totalTime": 36371, + }, + ], + "totalTime": 59092.58599999547, +} +`; + exports[`java-junit tests report from apache/pulsar single suite test results matches snapshot 1`] = ` TestRunResult { "path": "fixtures/external/java/TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml", diff --git a/__tests__/fixtures/external/java/playwright-report.xml b/__tests__/fixtures/external/java/playwright-report.xml new file mode 100644 index 0000000..5ade47c --- /dev/null +++ b/__tests__/fixtures/external/java/playwright-report.xml @@ -0,0 +1,472 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 12 | await this.locator.click(); + | ^ + 13 | } while (!expectedColumnSort.isVisible()); + 14 | } + 15 | } + + at TableLocator.sortColumnBy (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/table.locator.ts:12:26) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:30:52 + at GridActions.sortColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:28:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:205:27 + + Pending operations: + - locator.click at ../../packages/playwright-shared/src/models/locators/table.locator.ts:12:26 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── +]]> + + + + + + + + + + + + + + + + + + + + + + + + 17 | await this.locator.dblclick(); + | ^ + 18 | } + 19 | + 20 | async getText() { + + at TextInputLocator.doubleClick (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:48:63 + at GridActions.doubleClickIntoGridColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:47:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:256:25 + + Pending operations: + - locator.dblclick at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── +]]> + + + + + + + + 17 | await this.locator.dblclick(); + | ^ + 18 | } + 19 | + 20 | async getText() { + + at TextInputLocator.doubleClick (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:48:63 + at GridActions.doubleClickIntoGridColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:47:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:263:25 + + Pending operations: + - locator.dblclick at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── +]]> + + + + + + + + 13 | await this.locator.click({ force }); + | ^ + 14 | } + 15 | + 16 | async doubleClick() { + + at SelectLocator.click (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:13:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:93:58 + at GridActions.enterGridSelectValue (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:92:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:279:25 + + Pending operations: + - locator.click at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:13:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/__tests__/java-junit.test.ts b/__tests__/java-junit.test.ts index e8111d4..c0d6011 100644 --- a/__tests__/java-junit.test.ts +++ b/__tests__/java-junit.test.ts @@ -3,7 +3,7 @@ import * as path from 'path' import {JavaJunitParser} from '../src/parsers/java-junit/java-junit-parser' import {ParseOptions} from '../src/test-parser' -import {getReport} from '../src/report/get-report' +import {ReportOptions, getReport} from '../src/report/get-report' import {normalizeFilePath} from '../src/utils/path-utils' describe('java-junit tests', () => { @@ -90,4 +90,117 @@ describe('java-junit tests', () => { expect(result.result === 'failed') expect(result.failed === 1) }) + + it('playwright test report - all tests', async () => { + const fixturePath = path.join(__dirname, 'fixtures', 'external', 'java', 'playwright-report.xml') + const trackedFilesPath = path.join(__dirname, 'fixtures', 'external', 'java', 'files.txt') + const outputPath = path.join(__dirname, '__outputs__', 'playwright-output-all.md') + const filePath = normalizeFilePath(path.relative(__dirname, fixturePath)) + const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'}) + + const trackedFiles = fs.readFileSync(trackedFilesPath, {encoding: 'utf8'}).split(/\n\r?/g) + const opts: ParseOptions = { + parseErrors: true, + trackedFiles + } + + const reportOpts: ReportOptions = { + listSuites: 'all', + listTests: 'all', + baseUrl: '', + onlySummary: false + } + + const parser = new JavaJunitParser(opts) + const result = await parser.parse(filePath, fileContent) + expect(result).toMatchSnapshot() + + const report = getReport([result], reportOpts) + fs.mkdirSync(path.dirname(outputPath), {recursive: true}) + fs.writeFileSync(outputPath, report) + }) + it('playwright test report - ignore skipped tests', async () => { + const fixturePath = path.join(__dirname, 'fixtures', 'external', 'java', 'playwright-report.xml') + const trackedFilesPath = path.join(__dirname, 'fixtures', 'external', 'java', 'files.txt') + const outputPath = path.join(__dirname, '__outputs__', 'playwright-output-no-skipped.md') + const filePath = normalizeFilePath(path.relative(__dirname, fixturePath)) + const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'}) + + const trackedFiles = fs.readFileSync(trackedFilesPath, {encoding: 'utf8'}).split(/\n\r?/g) + const opts: ParseOptions = { + parseErrors: true, + trackedFiles + } + + const reportOpts: ReportOptions = { + listSuites: 'all', + listTests: 'non-skipped', + baseUrl: '', + onlySummary: false + } + + const parser = new JavaJunitParser(opts) + const result = await parser.parse(filePath, fileContent) + expect(result).toMatchSnapshot() + + const report = getReport([result], reportOpts) + fs.mkdirSync(path.dirname(outputPath), {recursive: true}) + fs.writeFileSync(outputPath, report) + }) + it('playwright test report - only failed', async () => { + const fixturePath = path.join(__dirname, 'fixtures', 'external', 'java', 'playwright-report.xml') + const trackedFilesPath = path.join(__dirname, 'fixtures', 'external', 'java', 'files.txt') + const outputPath = path.join(__dirname, '__outputs__', 'playwright-output-failed.md') + const filePath = normalizeFilePath(path.relative(__dirname, fixturePath)) + const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'}) + + const trackedFiles = fs.readFileSync(trackedFilesPath, {encoding: 'utf8'}).split(/\n\r?/g) + const opts: ParseOptions = { + parseErrors: true, + trackedFiles + } + + const reportOpts: ReportOptions = { + listSuites: 'failed', + listTests: 'failed', + baseUrl: '', + onlySummary: false + } + + const parser = new JavaJunitParser(opts) + const result = await parser.parse(filePath, fileContent) + expect(result).toMatchSnapshot() + + const report = getReport([result], reportOpts) + fs.mkdirSync(path.dirname(outputPath), {recursive: true}) + fs.writeFileSync(outputPath, report) + }) + it('playwright test report - only summary', async () => { + const fixturePath = path.join(__dirname, 'fixtures', 'external', 'java', 'playwright-report.xml') + const trackedFilesPath = path.join(__dirname, 'fixtures', 'external', 'java', 'files.txt') + const outputPath = path.join(__dirname, '__outputs__', 'playwright-output-summary.md') + const filePath = normalizeFilePath(path.relative(__dirname, fixturePath)) + const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'}) + + const trackedFiles = fs.readFileSync(trackedFilesPath, {encoding: 'utf8'}).split(/\n\r?/g) + const opts: ParseOptions = { + parseErrors: true, + trackedFiles + } + + const reportOpts: ReportOptions = { + listSuites: 'all', + listTests: 'all', + baseUrl: '', + onlySummary: true + } + + const parser = new JavaJunitParser(opts) + const result = await parser.parse(filePath, fileContent) + expect(result).toMatchSnapshot() + + const report = getReport([result], reportOpts) + fs.mkdirSync(path.dirname(outputPath), {recursive: true}) + fs.writeFileSync(outputPath, report) + }) }) diff --git a/dist/index.js b/dist/index.js index aac5b52..3bad222 100644 --- a/dist/index.js +++ b/dist/index.js @@ -314,10 +314,13 @@ class TestReporter { }); this.octokit = github.getOctokit(this.token); if (this.listSuites !== 'all' && this.listSuites !== 'failed') { - core.setFailed(`Input parameter 'list-suites' has invalid value`); + core.setFailed(`Input parameter 'list-suites' has invalid value of ${this.listSuites}`); return; } - if (this.listTests !== 'all' && this.listTests !== 'failed' && this.listTests !== 'none') { + if (this.listTests !== 'all' && + this.listTests !== 'failed' && + this.listTests !== 'none' && + this.listTests !== 'non-skipped') { core.setFailed(`Input parameter 'list-tests' has invalid value`); return; } @@ -1723,6 +1726,9 @@ function getTestsReport(ts, runIndex, suiteIndex, options) { } const space = grp.name ? ' ' : ''; for (const tc of grp.tests) { + if (options.listTests === 'non-skipped' && tc.result === 'skipped') { + continue; + } const result = getResultIcon(tc.result); sections.push(`${space}${result} ${tc.name}`); if (tc.error) { diff --git a/playwright-report.xml b/playwright-report.xml new file mode 100644 index 0000000..5ade47c --- /dev/null +++ b/playwright-report.xml @@ -0,0 +1,472 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 12 | await this.locator.click(); + | ^ + 13 | } while (!expectedColumnSort.isVisible()); + 14 | } + 15 | } + + at TableLocator.sortColumnBy (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/table.locator.ts:12:26) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:30:52 + at GridActions.sortColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:28:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:205:27 + + Pending operations: + - locator.click at ../../packages/playwright-shared/src/models/locators/table.locator.ts:12:26 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Column-Sorting-AmFb-Column-Set-8f487-ay-correct-data-when-sorting-by-OFF-FORM-column-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── +]]> + + + + + + + + + + + + + + + + + + + + + + + + 17 | await this.locator.dblclick(); + | ^ + 18 | } + 19 | + 20 | async getText() { + + at TextInputLocator.doubleClick (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:48:63 + at GridActions.doubleClickIntoGridColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:47:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:256:25 + + Pending operations: + - locator.dblclick at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-open-select-dropdown-options-when-pressing-Spacebar-in-grid-cell-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── +]]> + + + + + + + + 17 | await this.locator.dblclick(); + | ^ + 18 | } + 19 | + 20 | async getText() { + + at TextInputLocator.doubleClick (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:48:63 + at GridActions.doubleClickIntoGridColumn (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:47:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:263:25 + + Pending operations: + - locator.dblclick at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:17:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-horizontal-grid-and-enter-data-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── +]]> + + + + + + + + 13 | await this.locator.click({ force }); + | ^ + 14 | } + 15 | + 16 | async doubleClick() { + + at SelectLocator.click (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/packages/playwright-shared/src/models/locators/base/base.locator.ts:13:24) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:93:58 + at GridActions.enterGridSelectValue (/Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/models/actions/grid.actions.ts:92:16) + at /Users/connor.vidlock/Documents/GitHub/hudl-frontends/apps/watch/playwright/tests/grid.spec.ts:279:25 + + Pending operations: + - locator.click at ../../packages/playwright-shared/src/models/locators/base/base.locator.ts:13:24 + + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── + playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/trace.zip + Usage: + + npx playwright show-trace playwright/test-results/tests-grid-Grid-Data-Entry-should-be-able-to-use-keyboard-to-navigate-vertical-grid-and-enter-data-chrome/trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main.ts b/src/main.ts index c6d579b..c09003c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -40,7 +40,7 @@ class TestReporter { readonly pathReplaceBackslashes = core.getInput('path-replace-backslashes', {required: false}) === 'true' readonly reporter = core.getInput('reporter', {required: true}) readonly listSuites = core.getInput('list-suites', {required: true}) as 'all' | 'failed' - readonly listTests = core.getInput('list-tests', {required: true}) as 'all' | 'failed' | 'none' + readonly listTests = core.getInput('list-tests', {required: true}) as 'all' | 'failed' | 'none' | 'non-skipped' readonly maxAnnotations = parseInt(core.getInput('max-annotations', {required: true})) readonly failOnError = core.getInput('fail-on-error', {required: true}) === 'true' readonly workDirInput = core.getInput('working-directory', {required: false}) @@ -54,11 +54,16 @@ class TestReporter { this.octokit = github.getOctokit(this.token) if (this.listSuites !== 'all' && this.listSuites !== 'failed') { - core.setFailed(`Input parameter 'list-suites' has invalid value`) + core.setFailed(`Input parameter 'list-suites' has invalid value of ${this.listSuites}`) return } - if (this.listTests !== 'all' && this.listTests !== 'failed' && this.listTests !== 'none') { + if ( + this.listTests !== 'all' && + this.listTests !== 'failed' && + this.listTests !== 'none' && + this.listTests !== 'non-skipped' + ) { core.setFailed(`Input parameter 'list-tests' has invalid value`) return } diff --git a/src/report/get-report.ts b/src/report/get-report.ts index 2cc1f16..0d82b1a 100644 --- a/src/report/get-report.ts +++ b/src/report/get-report.ts @@ -9,7 +9,7 @@ const MAX_REPORT_LENGTH = 65535 export interface ReportOptions { listSuites: 'all' | 'failed' - listTests: 'all' | 'failed' | 'none' + listTests: 'all' | 'failed' | 'none' | 'non-skipped' baseUrl: string onlySummary: boolean } @@ -212,6 +212,7 @@ function getTestsReport(ts: TestSuiteResult, runIndex: number, suiteIndex: numbe if (options.listTests === 'failed' && ts.result !== 'failed') { return [] } + const groups = ts.groups if (groups.length === 0) { return [] @@ -232,6 +233,9 @@ function getTestsReport(ts: TestSuiteResult, runIndex: number, suiteIndex: numbe } const space = grp.name ? ' ' : '' for (const tc of grp.tests) { + if (options.listTests === 'non-skipped' && tc.result === 'skipped') { + continue + } const result = getResultIcon(tc.result) sections.push(`${space}${result} ${tc.name}`) if (tc.error) {