Skip to content

Commit da8545c

Browse files
garrappachcclaude
andauthored
test(e2e): add missing queue-config tags so all tests run in CI (#675)
## Summary - 9 spec files had no `@6v6` or `@9v9` tag in their test names and were silently skipped in CI by the `--grep @<queue-config>` filter used in the `Run Playwright tests` step - Added `@6v6 @9v9` to all affected tests since they are config-agnostic (game server lifecycle, admin actions, skill import/export, queue lock, back button) ## Affected files | File | Test | |------|------| | `tests/00-misc/04-handles-back-button.spec.ts` | `handle back button` | | `tests/10-queue/06-queue-locked-when-active-game.spec.ts` | `queue is locked for players that are involved in active game` | | `tests/20-game/01-configure-game-server.spec.ts` | `configure game server` | | `tests/20-game/03-update-player-connection-status.spec.ts` | `update player connection status` | | `tests/20-game/04-cleanup-game-server.spec.ts` | `cleanup game server` | | `tests/20-game/05-report-rounds.spec.ts` | `report rounds` | | `tests/90-admin/02-force-end-game.spec.ts` | `force end game` | | `tests/90-admin/03-reinitialize-game-server.spec.ts` | `reinitialize game server` | | `tests/90-admin/05-skill-import-export.spec.ts` | 5 tests | ## Test plan - [ ] CI e2e jobs now pick up and run all 9 previously-skipped test files for both `6v6` and `9v9` queue configs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent aaaf08a commit da8545c

9 files changed

Lines changed: 41 additions & 35 deletions

tests/00-misc/04-handles-back-button.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { QueuePage } from '../pages/queue.page'
55

66
const test = mergeTests(authUsers, waitForEmptyQueue)
77

8-
test('handle back button', async ({ page, users }) => {
8+
test('handle back button @6v6 @9v9', async ({ page, users }) => {
99
// Make sure htmx caching is disabled.
1010

1111
const queuePage = new QueuePage(page)

tests/10-queue/06-queue-locked-when-active-game.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { expect, launchGame } from '../fixtures/launch-game'
22
import { queueSlots } from '../queue-slots'
33

44
launchGame(
5-
'queue is locked for players that are involved in active game',
5+
'queue is locked for players that are involved in active game @6v6 @9v9',
66
// eslint-disable-next-line @typescript-eslint/no-unused-vars
77
async ({ players, gameNumber }) => {
88
await Promise.all(

tests/20-game/01-configure-game-server.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { launchGame, expect } from '../fixtures/launch-game'
22
import { secondsToMilliseconds } from 'date-fns'
33
import { GamePage } from '../pages/game.page'
44

5-
launchGame('configure game server', async ({ players, gameNumber, page, gameServer }) => {
5+
launchGame('configure game server @6v6 @9v9', async ({ players, gameNumber, page, gameServer }) => {
66
await Promise.all(
77
players.map(async player => {
88
const page = await player.gamePage(gameNumber)
Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,24 @@
11
import { expect, launchGame } from '../fixtures/launch-game'
22

33
launchGame.use({ waitForStage: 'launching' })
4-
launchGame('update player connection status', async ({ players, gameNumber, gameServer }) => {
5-
await Promise.all(
6-
players.map(async player => {
7-
const page = await player.gamePage(gameNumber)
8-
const slot = page.playerSlot(player.playerName)
9-
await expect(slot.getByLabel('Player connection status')).toHaveClass(/offline/)
4+
launchGame(
5+
'update player connection status @6v6 @9v9',
6+
async ({ players, gameNumber, gameServer }) => {
7+
await Promise.all(
8+
players.map(async player => {
9+
const page = await player.gamePage(gameNumber)
10+
const slot = page.playerSlot(player.playerName)
11+
await expect(slot.getByLabel('Player connection status')).toHaveClass(/offline/)
1012

11-
await gameServer.playerConnects(player.playerName)
12-
await expect(slot.getByLabel('Player connection status')).toHaveClass(/joining/)
13+
await gameServer.playerConnects(player.playerName)
14+
await expect(slot.getByLabel('Player connection status')).toHaveClass(/joining/)
1315

14-
await gameServer.playerJoinsTeam(player.playerName)
15-
await expect(slot.getByLabel('Player connection status')).toHaveClass(/connected/)
16+
await gameServer.playerJoinsTeam(player.playerName)
17+
await expect(slot.getByLabel('Player connection status')).toHaveClass(/connected/)
1618

17-
await gameServer.playerDisconnects(player.playerName)
18-
await expect(slot.getByLabel('Player connection status')).toHaveClass(/offline/)
19-
}),
20-
)
21-
})
19+
await gameServer.playerDisconnects(player.playerName)
20+
await expect(slot.getByLabel('Player connection status')).toHaveClass(/offline/)
21+
}),
22+
)
23+
},
24+
)

tests/20-game/04-cleanup-game-server.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { delay } from 'es-toolkit'
44

55
launchGame.use({ waitForStage: 'started' })
66
// eslint-disable-next-line @typescript-eslint/no-unused-vars
7-
launchGame('cleanup game server', async ({ gameServer, gameNumber }) => {
7+
launchGame('cleanup game server @6v6 @9v9', async ({ gameServer, gameNumber }) => {
88
launchGame.setTimeout(minutesToMilliseconds(2))
99

1010
await delay(secondsToMilliseconds(3))

tests/20-game/05-report-rounds.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { GamePage } from '../pages/game.page'
44
import { delay } from 'es-toolkit'
55

66
launchGame.use({ waitForStage: 'started' })
7-
launchGame('report rounds', async ({ gameNumber, page, gameServer }) => {
7+
launchGame('report rounds @6v6 @9v9', async ({ gameNumber, page, gameServer }) => {
88
// wait for the gameserver to be configured
99
const gamePage = new GamePage(page, gameNumber)
1010
await gamePage.goto()

tests/90-admin/02-force-end-game.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { expect, launchGame } from '../fixtures/launch-game'
22

3-
launchGame('force end game', async ({ users, gameNumber }) => {
3+
launchGame('force end game @6v6 @9v9', async ({ users, gameNumber }) => {
44
const admin = users.getAdmin()
55
const adminsPage = await admin.gamePage(gameNumber)
66
await adminsPage.goto()

tests/90-admin/03-reinitialize-game-server.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { expect, launchGame } from '../fixtures/launch-game'
33

44
launchGame.use({ waitForStage: 'launching' })
55

6-
launchGame('reinitialize game server', async ({ users, gameNumber }) => {
6+
launchGame('reinitialize game server @6v6 @9v9', async ({ users, gameNumber }) => {
77
const admin = users.getAdmin()
88
const page = await admin.gamePage(gameNumber)
99
await page.goto()

tests/90-admin/05-skill-import-export.spec.ts

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,20 @@ import { resolve } from 'node:path'
44
import { writeFile, unlink } from 'node:fs/promises'
55
import { tmpdir } from 'node:os'
66

7-
authUsers('skill import/export page is accessible for admins', async ({ users: userManager }) => {
8-
const adminPage = await userManager.getAdmin().page()
9-
await adminPage.goto('/admin/skill-import-export')
10-
await expect(adminPage.getByRole('heading', { name: 'Export player skills' })).toBeVisible()
11-
await expect(adminPage.getByRole('heading', { name: 'Import player skills' })).toBeVisible()
12-
await expect(adminPage.getByRole('link', { name: 'Download CSV' })).toBeVisible()
13-
await expect(adminPage.getByRole('button', { name: 'Upload and preview' })).toBeVisible()
14-
})
7+
authUsers(
8+
'skill import/export page is accessible for admins @6v6 @9v9',
9+
async ({ users: userManager }) => {
10+
const adminPage = await userManager.getAdmin().page()
11+
await adminPage.goto('/admin/skill-import-export')
12+
await expect(adminPage.getByRole('heading', { name: 'Export player skills' })).toBeVisible()
13+
await expect(adminPage.getByRole('heading', { name: 'Import player skills' })).toBeVisible()
14+
await expect(adminPage.getByRole('link', { name: 'Download CSV' })).toBeVisible()
15+
await expect(adminPage.getByRole('button', { name: 'Upload and preview' })).toBeVisible()
16+
},
17+
)
1518

1619
authUsers(
17-
'skill import/export page is not accessible for non-admins',
20+
'skill import/export page is not accessible for non-admins @6v6 @9v9',
1821
async ({ users: userManager }) => {
1922
const userPage = await userManager.getNext(u => !u.isAdmin).page()
2023
await userPage.goto('/admin/skill-import-export')
@@ -23,7 +26,7 @@ authUsers(
2326
},
2427
)
2528

26-
authUsers('export skills downloads a CSV file', async ({ users: userManager }) => {
29+
authUsers('export skills downloads a CSV file @6v6 @9v9', async ({ users: userManager }) => {
2730
const adminPage = await userManager.getAdmin().page()
2831
await adminPage.goto('/admin/skill-import-export')
2932

@@ -34,7 +37,7 @@ authUsers('export skills downloads a CSV file', async ({ users: userManager }) =
3437
expect(download.suggestedFilename()).toMatch(/player-skills-.*\.csv/)
3538
})
3639

37-
authUsers('upload CSV shows preview page', async ({ users: userManager }) => {
40+
authUsers('upload CSV shows preview page @6v6 @9v9', async ({ users: userManager }) => {
3841
const adminPage = await userManager.getAdmin().page()
3942
await adminPage.goto('/admin/skill-import-export')
4043

@@ -59,7 +62,7 @@ ${users[1].steamId},${users[1].name},3,4,3,4`
5962
}
6063
})
6164

62-
authUsers('apply import updates player skills', async ({ users: userManager, db }) => {
65+
authUsers('apply import updates player skills @6v6 @9v9', async ({ users: userManager, db }) => {
6366
const adminPage = await userManager.getAdmin().page()
6467
const adminSteamId = users[0].steamId
6568
const targetSteamId = users[1].steamId
@@ -116,7 +119,7 @@ ${targetSteamId},TestPlayer,7,8,9,10`
116119
})
117120

118121
authUsers(
119-
'future player skills are stored for unregistered players',
122+
'future player skills are stored for unregistered players @6v6 @9v9',
120123
async ({ users: userManager, db }) => {
121124
const adminPage = await userManager.getAdmin().page()
122125
const futureSteamId = '76561198000000001' // A Steam ID that doesn't exist in the database

0 commit comments

Comments
 (0)