This commit is contained in:
2026-10-18 04:32:58 +07:00
parent e85d899fd7
commit c36d3fd314
14 changed files with 446 additions and 50 deletions
+53 -2
View File
@@ -12,6 +12,8 @@ module.exports = async function onlineSmoke({
displayId,
root,
}) {
let gamesCalls = 0
let varyGames = false
let version = 1
let offline = false
let polls = 0
@@ -47,8 +49,15 @@ module.exports = async function onlineSmoke({
return send({ accessToken: 'TEST-ACCESS', refreshToken: 'TEST-REFRESH' })
}
if (path === '/api/users/me') return send({ user: { roles: ['organizer'] } })
if (path === '/api/games')
return send({ games: [{ ID: 6, name: 'HTTP smoke', status: 'finish' }] })
if (path === '/api/games') {
gamesCalls++
return send({
games:
varyGames && gamesCalls % 2 === 0
? []
: [{ ID: 6, name: 'HTTP smoke', status: 'finish' }],
})
}
if (path === '/api/games/6')
return send({
game: {
@@ -173,6 +182,48 @@ module.exports = async function onlineSmoke({
),
'server game selector',
)
varyGames = true
for (let refresh = 0; refresh < 5; refresh++) {
await poll(
() =>
evaluate(
`!Array.from(document.querySelectorAll('button')).find(b => b.textContent.trim() === 'Обновить список игр')?.disabled`,
),
'refresh games button ready',
)
const previousCalls = gamesCalls
await evaluate(
`Array.from(document.querySelectorAll('button')).find(b => b.textContent.trim() === 'Обновить список игр').click()`,
)
await poll(
async () =>
gamesCalls > previousCalls && !(await evaluate('window.screenBridge.onlineState()')).busy,
'refresh games complete',
)
await poll(
() =>
evaluate(
`document.querySelector('.connection-content')?.textContent.includes('Управление не подключено')`,
),
'connection status rendered',
)
assert.equal(
await evaluate(
`document.querySelector('.connection-content').textContent.split('Управление не подключено').length - 1`,
),
1,
'refresh does not duplicate status',
)
}
await poll(
() =>
evaluate(
`!Array.from(document.querySelectorAll('button')).find(b => b.textContent.trim() === 'Обновить список игр')?.disabled`,
),
'last refresh complete',
)
varyGames = false
await act({ action: 'games' })
await evaluate(
`Array.from(document.querySelectorAll('.n-base-selection')).find(e => e.textContent.includes('Выберите игру для подготовки')).click()`,
)