Skip to content

test(e2e): enable trace on all retries #19

test(e2e): enable trace on all retries

test(e2e): enable trace on all retries #19

Re-run triggered August 6, 2024 10:51
Status Failure
Total duration 11m 42s
Billable time 51m
Artifacts 1

test.yml

on: push
Fit to window
Zoom out
Zoom in

Annotations

10 errors, 2 warnings, and 1 notice
[chromium] › 20-game/03-update-player-connection-status.spec.ts:6:1 › update player connection status: tests/20-game/03-update-player-connection-status.spec.ts#L16
1) [chromium] › 20-game/03-update-player-connection-status.spec.ts:6:1 › update player connection status Error: expect.toBeVisible: Error: strict mode violation: getByLabel('Game events').getByText('Game server initialized') resolved to 2 elements: 1) <span>Game server initialized</span> aka getByText('Game server initialized').first() 2) <span>Game server initialized</span> aka getByText('Game server initialized').nth(1) Call log: - expect.toBeVisible with timeout 30000ms - waiting for getByLabel('Game events').getByText('Game server initialized') 14 | const playerName = users.find(u => u.steamId === steamId)!.name 15 | > 16 | await expect(page.gameEvent('Game server initialized')).toBeVisible({ | ^ 17 | timeout: secondsToMilliseconds(30), 18 | }) 19 | at map (/home/runner/work/tf2pickup/tf2pickup/tests/20-game/03-update-player-connection-status.spec.ts:16:65) at /home/runner/work/tf2pickup/tf2pickup/tests/20-game/03-update-player-connection-status.spec.ts:12:15
[chromium] › 20-game/03-update-player-connection-status.spec.ts:6:1 › update player connection status: tests/fixtures/launch-game.ts#L26
1) [chromium] › 20-game/03-update-player-connection-status.spec.ts:6:1 › update player connection status Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Error: strict mode violation: getByLabel('Join queue on slot 0', { exact: true }) resolved to 2 elements: 1) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').first() 2) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').nth(1) Call log: - waiting for getByLabel('Join queue on slot 0', { exact: true }) at fixtures/launch-game.ts:26 24 | await mutex.runExclusive(async () => { 25 | // join the queue > 26 | await page.getByLabel(`Join queue on slot ${i}`, { exact: true }).click() | ^ 27 | }) 28 | 29 | // last player joining the queue is ready by default at /home/runner/work/tf2pickup/tf2pickup/tests/fixtures/launch-game.ts:26:77 at /home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:162:51 at Semaphore.<anonymous> (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:40:30) at fulfilled (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:8:58)
[chromium] › 20-game/03-update-player-connection-status.spec.ts:6:1 › update player connection status: tests/fixtures/launch-game.ts#L26
1) [chromium] › 20-game/03-update-player-connection-status.spec.ts:6:1 › update player connection status Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Error: strict mode violation: getByLabel('Join queue on slot 0', { exact: true }) resolved to 2 elements: 1) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').first() 2) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').nth(1) Call log: - waiting for getByLabel('Join queue on slot 0', { exact: true }) at fixtures/launch-game.ts:26 24 | await mutex.runExclusive(async () => { 25 | // join the queue > 26 | await page.getByLabel(`Join queue on slot ${i}`, { exact: true }).click() | ^ 27 | }) 28 | 29 | // last player joining the queue is ready by default at /home/runner/work/tf2pickup/tf2pickup/tests/fixtures/launch-game.ts:26:77 at /home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:162:51 at Semaphore.<anonymous> (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:40:30) at fulfilled (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:8:58)
[chromium] › 30-player-substitutes/01-substitute-self.spec.ts:5:1 › substitute self: tests/fixtures/launch-game.ts#L26
2) [chromium] › 30-player-substitutes/01-substitute-self.spec.ts:5:1 › substitute self ─────────── Error: locator.click: Error: strict mode violation: getByLabel('Join queue on slot 0', { exact: true }) resolved to 2 elements: 1) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').first() 2) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').nth(1) Call log: - waiting for getByLabel('Join queue on slot 0', { exact: true }) at fixtures/launch-game.ts:26 24 | await mutex.runExclusive(async () => { 25 | // join the queue > 26 | await page.getByLabel(`Join queue on slot ${i}`, { exact: true }).click() | ^ 27 | }) 28 | 29 | // last player joining the queue is ready by default at /home/runner/work/tf2pickup/tf2pickup/tests/fixtures/launch-game.ts:26:77 at /home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:162:51 at Semaphore.<anonymous> (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:40:30) at fulfilled (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:8:58)
[chromium] › 30-player-substitutes/01-substitute-self.spec.ts:5:1 › substitute self: tests/fixtures/launch-game.ts#L26
2) [chromium] › 30-player-substitutes/01-substitute-self.spec.ts:5:1 › substitute self ─────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Error: strict mode violation: getByLabel('Join queue on slot 0', { exact: true }) resolved to 2 elements: 1) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').first() 2) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').nth(1) Call log: - waiting for getByLabel('Join queue on slot 0', { exact: true }) at fixtures/launch-game.ts:26 24 | await mutex.runExclusive(async () => { 25 | // join the queue > 26 | await page.getByLabel(`Join queue on slot ${i}`, { exact: true }).click() | ^ 27 | }) 28 | 29 | // last player joining the queue is ready by default at /home/runner/work/tf2pickup/tf2pickup/tests/fixtures/launch-game.ts:26:77 at /home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:162:51 at Semaphore.<anonymous> (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:40:30) at fulfilled (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:8:58)
[chromium] › 30-player-substitutes/01-substitute-self.spec.ts:5:1 › substitute self: tests/fixtures/launch-game.ts#L26
2) [chromium] › 30-player-substitutes/01-substitute-self.spec.ts:5:1 › substitute self ─────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Error: strict mode violation: getByLabel('Join queue on slot 0', { exact: true }) resolved to 2 elements: 1) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').first() 2) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').nth(1) Call log: - waiting for getByLabel('Join queue on slot 0', { exact: true }) at fixtures/launch-game.ts:26 24 | await mutex.runExclusive(async () => { 25 | // join the queue > 26 | await page.getByLabel(`Join queue on slot ${i}`, { exact: true }).click() | ^ 27 | }) 28 | 29 | // last player joining the queue is ready by default at /home/runner/work/tf2pickup/tf2pickup/tests/fixtures/launch-game.ts:26:77 at /home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:162:51 at Semaphore.<anonymous> (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:40:30) at fulfilled (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:8:58)
[chromium] › 30-player-substitutes/02-substitute-other.spec.ts:5:1 › substitute other: tests/fixtures/launch-game.ts#L26
3) [chromium] › 30-player-substitutes/02-substitute-other.spec.ts:5:1 › substitute other ───────── Error: locator.click: Error: strict mode violation: getByLabel('Join queue on slot 0', { exact: true }) resolved to 2 elements: 1) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').first() 2) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').nth(1) Call log: - waiting for getByLabel('Join queue on slot 0', { exact: true }) at fixtures/launch-game.ts:26 24 | await mutex.runExclusive(async () => { 25 | // join the queue > 26 | await page.getByLabel(`Join queue on slot ${i}`, { exact: true }).click() | ^ 27 | }) 28 | 29 | // last player joining the queue is ready by default at /home/runner/work/tf2pickup/tf2pickup/tests/fixtures/launch-game.ts:26:77 at /home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:162:51 at Semaphore.<anonymous> (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:40:30) at fulfilled (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:8:58)
[chromium] › 30-player-substitutes/02-substitute-other.spec.ts:5:1 › substitute other: tests/fixtures/launch-game.ts#L26
3) [chromium] › 30-player-substitutes/02-substitute-other.spec.ts:5:1 › substitute other ───────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Error: strict mode violation: getByLabel('Join queue on slot 0', { exact: true }) resolved to 2 elements: 1) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').first() 2) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').nth(1) Call log: - waiting for getByLabel('Join queue on slot 0', { exact: true }) at fixtures/launch-game.ts:26 24 | await mutex.runExclusive(async () => { 25 | // join the queue > 26 | await page.getByLabel(`Join queue on slot ${i}`, { exact: true }).click() | ^ 27 | }) 28 | 29 | // last player joining the queue is ready by default at /home/runner/work/tf2pickup/tf2pickup/tests/fixtures/launch-game.ts:26:77 at /home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:162:51 at Semaphore.<anonymous> (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:40:30) at fulfilled (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:8:58)
[chromium] › 30-player-substitutes/02-substitute-other.spec.ts:5:1 › substitute other: tests/fixtures/launch-game.ts#L26
3) [chromium] › 30-player-substitutes/02-substitute-other.spec.ts:5:1 › substitute other ───────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Error: strict mode violation: getByLabel('Join queue on slot 0', { exact: true }) resolved to 2 elements: 1) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').first() 2) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').nth(1) Call log: - waiting for getByLabel('Join queue on slot 0', { exact: true }) at fixtures/launch-game.ts:26 24 | await mutex.runExclusive(async () => { 25 | // join the queue > 26 | await page.getByLabel(`Join queue on slot ${i}`, { exact: true }).click() | ^ 27 | }) 28 | 29 | // last player joining the queue is ready by default at /home/runner/work/tf2pickup/tf2pickup/tests/fixtures/launch-game.ts:26:77 at /home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:162:51 at Semaphore.<anonymous> (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:40:30) at fulfilled (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:8:58)
[chromium] › 90-admin/01-force-end-game.spec.ts:5:1 › force end game: tests/fixtures/launch-game.ts#L26
4) [chromium] › 90-admin/01-force-end-game.spec.ts:5:1 › force end game ────────────────────────── Error: locator.click: Error: strict mode violation: getByLabel('Join queue on slot 0', { exact: true }) resolved to 2 elements: 1) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').first() 2) <button value="0" name="join" class="join-queue-button" aria-label="Join queue on slot 0">…</button> aka getByLabel('Join queue on slot 0').nth(1) Call log: - waiting for getByLabel('Join queue on slot 0', { exact: true }) at fixtures/launch-game.ts:26 24 | await mutex.runExclusive(async () => { 25 | // join the queue > 26 | await page.getByLabel(`Join queue on slot ${i}`, { exact: true }).click() | ^ 27 | }) 28 | 29 | // last player joining the queue is ready by default at /home/runner/work/tf2pickup/tf2pickup/tests/fixtures/launch-game.ts:26:77 at /home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:162:51 at Semaphore.<anonymous> (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:40:30) at fulfilled (/home/runner/work/tf2pickup/tf2pickup/node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs:8:58)
unit
The following actions uses Node.js version which is deprecated and will be forced to run on node20: pnpm/action-setup@v2. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
end to end
The following actions uses Node.js version which is deprecated and will be forced to run on node20: pnpm/action-setup@v2. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
🎭 Playwright Run Summary
16 failed [chromium] › 20-game/03-update-player-connection-status.spec.ts:6:1 › update player connection status [chromium] › 30-player-substitutes/01-substitute-self.spec.ts:5:1 › substitute self ──────────── [chromium] › 30-player-substitutes/02-substitute-other.spec.ts:5:1 › substitute other ────────── [chromium] › 90-admin/01-force-end-game.spec.ts:5:1 › force end game ─────────────────────────── [firefox] › 01-initial.spec.ts:3:1 › has title ───────────────────────────────────────────────── [firefox] › 01-initial.spec.ts:19:1 › has 12 queue slots and no join buttons ─────────────────── [firefox] › 10-queue/02-vote-for-map.spec.ts:8:1 › vote for map ──────────────────────────────── [firefox] › 10-queue/03-mark-as-friend.spec.ts:7:1 › mark as friend ──────────────────────────── [firefox] › 10-queue/04-everybody-leaves.spec.ts:5:1 › everybody leaves ──────────────────────── [firefox] › 10-queue/05-late-for-ready-up.spec.ts:5:1 › player is late for ready up ──────────── [firefox] › 20-game/01-configure-game-server.spec.ts:7:1 › configure game server ─────────────── [firefox] › 20-game/02-free-players.spec.ts:9:1 › free players when the game ends ────────────── [firefox] › 20-game/03-update-player-connection-status.spec.ts:6:1 › update player connection status [firefox] › 30-player-substitutes/01-substitute-self.spec.ts:5:1 › substitute self ───────────── [firefox] › 30-player-substitutes/02-substitute-other.spec.ts:5:1 › substitute other ─────────── [firefox] › 90-admin/01-force-end-game.spec.ts:5:1 › force end game ──────────────────────────── 2 skipped 15 passed (10.1m)

Artifacts

Produced during runtime
Name Size
playwright-report Expired
213 MB