test(ui): проверить смену режима во время опроса
This commit is contained in:
1 parent
27f8323624
commit
ddb47a0ee4
2 files changed
+27
No files matched your search
@@ -29,6 +29,11 @@
|
||||
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Не начат |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
|
||||
|
||||
## Приёмка 7.5Д — смена режима при незавершённом Ping (2026-09-23)
|
||||
|
||||
- Новый E2E удерживает POST collect-group, открывает настройки обычной ссылкой, переключает «Живые» на «Моковые», возвращается назад и получает поздний 500 старого запроса. Проверено отсутствие старой ошибки и доступность создания пробы в новом режиме. Тест прошёл; код приложения не менялся. Сценарий включает размонтирование страницы, не доказывает смену контекста без размонтирования.
|
||||
- URL backend в текущем Playwright окружении заблокирован NEXT_PUBLIC_BACKEND_URL=same-origin. Смену адреса backend нужно проверять отдельной конфигурацией; этот сценарий остаётся открытым, как и сквозной переход к Ping-проверке из дашборда. Production build не повторялся для изменения теста; последняя успешная сборка ca9474a. Работа продолжена по просьбе пользователя при остатке 7% пятичасовой квоты. Локальный коммит без push.
|
||||
|
||||
## Приёмка 7.5Г — сквозной сценарий сервера (2026-09-23)
|
||||
|
||||
- Добавлен E2E «проблема на дашборде → выбранный сервер → опрос с 403 → успешный повтор → назад → вперёд». Проверены точный ID и одна строка, сохранение выбранного сервера при отказе, два явных POST только выбранному устройству и отсутствие операций записи от переходов истории.
|
||||
|
||||
@@ -641,3 +641,25 @@ for (const width of [320, 390]) {
|
||||
expect(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth)).toBe(true)
|
||||
})
|
||||
}
|
||||
|
||||
test('Смена режима через настройки: поздняя ошибка Ping не появляется после возврата', async ({ page }) => {
|
||||
await setup(page, '/uptime?probe=p1', 0, false, 'mm:uptime:write')
|
||||
let release!: () => void
|
||||
const gate = new Promise<void>(resolve => { release = resolve })
|
||||
await page.route('**/api/uptime/probes/collect-group', async route => {
|
||||
await gate
|
||||
await route.fulfill({ status: 500, json: { error: 'Ошибка старого live-подключения' } })
|
||||
})
|
||||
const started = page.waitForRequest(r => r.url().endsWith('/collect-group'))
|
||||
await page.getByRole('button', { name: 'Обновить', exact: true }).click()
|
||||
await started
|
||||
await page.locator('a[href="/settings"]').first().click()
|
||||
await page.getByRole('button', { name: 'Моковые', exact: true }).click()
|
||||
await page.goBack()
|
||||
await expect(page.getByText(/Демо-режим · пробы/)).toBeVisible()
|
||||
const response = page.waitForResponse(r => r.url().endsWith('/collect-group'))
|
||||
release()
|
||||
await response
|
||||
await expect(page.getByText('Ошибка старого live-подключения', { exact: true })).toHaveCount(0)
|
||||
await expect(page.getByRole('button', { name: 'Новая проба', exact: true })).toBeEnabled()
|
||||
})
|
||||
Reference in new issue
Block a user