Update open-four-players.mjs
This commit is contained in:
@@ -49,7 +49,7 @@ async function login(page, player) {
|
|||||||
page.waitForURL('**/hall', { timeout: 15000 }),
|
page.waitForURL('**/hall', { timeout: 15000 }),
|
||||||
submitButton.click(),
|
submitButton.click(),
|
||||||
])
|
])
|
||||||
await page.getByText(`用户名:${player.username}`).waitFor({ timeout: 15000 })
|
await page.getByRole('heading', { name: '麻将游戏大厅' }).waitFor({ timeout: 15000 })
|
||||||
log(`logged in ${player.username}`)
|
log(`logged in ${player.username}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,24 +64,12 @@ async function createRoom(page) {
|
|||||||
if (!roomId) {
|
if (!roomId) {
|
||||||
throw new Error('Failed to read room id')
|
throw new Error('Failed to read room id')
|
||||||
}
|
}
|
||||||
return { roomId, roomName }
|
|
||||||
}
|
|
||||||
|
|
||||||
async function ownerEnterRoom(page, roomId) {
|
|
||||||
log(`owner enter room ${roomId}`)
|
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
page.waitForURL(`**/game/chengdu/${roomId}*`, { timeout: 15000 }),
|
page.waitForURL(`**/game/chengdu/${roomId}*`, { timeout: 15000 }),
|
||||||
page.getByRole('button', { name: '进入房间' }).click(),
|
page.getByRole('button', { name: '进入房间' }).click(),
|
||||||
])
|
])
|
||||||
log(`owner entered room ${roomId}`)
|
log(`owner entered room ${roomId}`)
|
||||||
}
|
return { roomId, roomName }
|
||||||
|
|
||||||
async function ownerStartGame(page) {
|
|
||||||
log('owner start game')
|
|
||||||
const startButton = page.getByRole('button', { name: '开始游戏' })
|
|
||||||
await startButton.waitFor({ timeout: 15000 })
|
|
||||||
await startButton.click()
|
|
||||||
log('owner clicked start game')
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function joinRoom(page, roomId, username) {
|
async function joinRoom(page, roomId, username) {
|
||||||
@@ -134,23 +122,20 @@ async function main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await ownerEnterRoom(owner.page, roomId)
|
|
||||||
await new Promise((resolve) => setTimeout(resolve, 3000))
|
|
||||||
await ownerStartGame(owner.page)
|
|
||||||
|
|
||||||
await new Promise((resolve) => setTimeout(resolve, 8000))
|
await new Promise((resolve) => setTimeout(resolve, 8000))
|
||||||
|
|
||||||
const playersSnapshot = []
|
const playersSnapshot = []
|
||||||
for (const session of sessions) {
|
for (const session of sessions) {
|
||||||
|
await session.page.bringToFront()
|
||||||
|
await new Promise((resolve) => setTimeout(resolve, 2000))
|
||||||
let snapshot = await snapshotPage(session)
|
let snapshot = await snapshotPage(session)
|
||||||
if (!snapshot.started) {
|
if (!snapshot.started) {
|
||||||
log(`reload game page for ${session.username}`)
|
log(`focus retry for ${session.username}`)
|
||||||
await session.page.reload({ waitUntil: 'domcontentloaded' })
|
await session.page.bringToFront()
|
||||||
await new Promise((resolve) => setTimeout(resolve, 3000))
|
await new Promise((resolve) => setTimeout(resolve, 3000))
|
||||||
snapshot = await snapshotPage(session)
|
snapshot = await snapshotPage(session)
|
||||||
}
|
}
|
||||||
playersSnapshot.push(snapshot)
|
playersSnapshot.push(snapshot)
|
||||||
await session.page.bringToFront()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(JSON.stringify({
|
console.log(JSON.stringify({
|
||||||
|
|||||||
Reference in New Issue
Block a user