fix(ui): уточнить интерфейсы speed и исправить CLI-подсказку
This commit is contained in:
1 parent
47f747586c
commit
f194e7269b
8 files changed
+215
-6
No files matched your search
@@ -1664,12 +1664,12 @@ function UptimePageContent({ selectedProbeId, allProbesHref }: { selectedProbeId
|
||||
lines.push("")
|
||||
|
||||
if (si) {
|
||||
lines.push(`/ip address print where name="${si.replace(/"/g, '\\"')}"`)
|
||||
lines.push(`/ip address print where interface="${si.replace(/"/g, '\\"')}"`)
|
||||
lines.push("")
|
||||
}
|
||||
if (di) {
|
||||
lines.push(`# Выполнить на узле назначения (${dst.name}) — адрес приёмника BT-сервера:`)
|
||||
lines.push(`/ip address print where name="${di.replace(/"/g, '\\"')}"`)
|
||||
lines.push(`/ip address print where interface="${di.replace(/"/g, '\\"')}"`)
|
||||
lines.push("")
|
||||
}
|
||||
|
||||
@@ -2778,6 +2778,11 @@ function UptimePageContent({ selectedProbeId, allProbesHref }: { selectedProbeId
|
||||
/>
|
||||
</FormField>
|
||||
|
||||
<p className="text-xs text-muted-foreground leading-relaxed">
|
||||
Интерфейс источника используется для Ping после теста. На назначении выбирается
|
||||
IP интерфейса, статический — первым. Маршрут bandwidth-test определяет RouterOS.
|
||||
</p>
|
||||
|
||||
<div className="grid grid-cols-1 gap-3">
|
||||
<FormField label="Протокол">
|
||||
<SegmentedControl
|
||||
|
||||
@@ -149,3 +149,7 @@ BGP-prefix evaluator, отдельное live GRE расписание и recove
|
||||
## Новый frontend proxy timeout — 2026-10-08
|
||||
|
||||
12.5.27 [real browser timeout502](ux-ui/acceptance/speed-unreachable-error-2026-10-08.json), [frontend deployment](ux-ui/acceptance/deployed-frontend-aa7dbdf-2026-10-08.json), [пять экранов](ux-ui/acceptance/deploy-browser-aa7dbdf-2026-10-08.json) passed. Frontendaa7dbdf/proxy180s, backend8782054healthy прежний; MMAPP_IMAGE_TAG=ux-aa7dbdf/BACKEND_IMAGE_TAG=ux-8782054. Основной DBcontrol совпал. Isolatedhost/probe восстановлены/удалены, temporarycontainers/network/3018 закрыты. Это transport timeout, не native can not connect; техническая подпись timeout остаётся ограничением UX. Следующий12.5.28 — ROS-3 interface/address/after-ping.
|
||||
|
||||
## Интерфейс native test и Ping — 2026-10-08
|
||||
|
||||
12.5.28 [real ROS-3](ux-ui/acceptance/speed-interface-2026-10-08.json): reverse2→1 done, bandwidth194.226.121.150/nointerfacebinding, Pingether1/0%loss; metadata source195 не доказываетsourceIPpackets. CHR2 имеет dynamic104/static195, явныйdstinterface предпочитаетstatic. Три1→2 попыткиtimeout, причинаauto-path не установлена; они не приняты. КонфигурацияRouterOS не менялась. Основнойruntimebackend8782054/frontendaa7dbdf/history5 сохранён. UIhint/CLIwhereinterface исправлены локально; browserfixture/typecheck/ESLint passed, не развёрнуты. Следующий12.5.29 — real browserform/deploymentподсказок.
|
||||
+2
-2
@@ -1,12 +1,12 @@
|
||||
# План реализации UX/UI по пятичасовым окнам
|
||||
|
||||
Актуальное продолжение 2026-10-08: 12.5.27 завершён — frontendaa7dbdf/proxy180s собран, real browser timeout получил502 вместо500, previousTX42/historyerror сохранены, native1/без автоповтора/JS0/320fits. Frontend развёрнут, backend8782054healthy, пять основных экранов/контрольБД passed. Следующий12.5.28 — ROS-3: выбор интерфейса, фактический адрес bandwidth-test и after-ping. Native can not connect/busy/disconnect/abort и полный12.5 открыты.
|
||||
Актуальное продолжение 2026-10-08: 12.5.28 подтвердил ROS-3 для2→1: native адрес194.226.121.150 без binding, after-ping interfaceether1/0%loss, SQLhistorydone. Три1→2 попытки timeout, этот путь не принят. Локально исправлены CLI where interface и пояснение формы; browser320/typecheck/ESLint passed, ещё не развёрнуты. Runtimebackend8782054/frontendaa7dbdf прежний. Следующий12.5.29 — browserform/deployment UI-подсказок, диагностика forward-сценария остаётся открытой.
|
||||
|
||||
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-08. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
|
||||
|
||||
## Актуальная точка продолжения — 2026-10-08
|
||||
|
||||
Этапы0–11 завершены в описанных локальных границах. Этап12 остаётся открытым. На161.104.46.222 развёрнуты backend/frontend8782054; два CHR подключены. PG backup/restore/rollback, single-instance quiescence, JWT/RBAC и browser restore приняты в границах журнала. PG-8 проверен с настоящими PG/native и введённой после COMMIT ошибкой подтверждения; новый browser UI сохраняет snapshot и сверяет историю. ROS-8/9 API/SQL/native приняты в описанных границах. Browser-смена пары/длительности и удаление во время native-теста приняты в12.5.24. Реальный отказ bandwidth-аутентификации принят в12.5.25. 12.5.26 обнаружил и локально исправил30s timeout Next proxy. Исправленный frontendaa7dbdf развёрнут и проверен в12.5.27; backend8782054 прежний. Следующий12.5.28 — ROS-3: интерфейсы, адрес bandwidth-test и after-ping. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) сохраняют точные доказательства и ограничения.
|
||||
Этапы0–11 завершены в описанных локальных границах. Этап12 остаётся открытым. На161.104.46.222 развёрнуты backend/frontend8782054; два CHR подключены. PG backup/restore/rollback, single-instance quiescence, JWT/RBAC и browser restore приняты в границах журнала. PG-8 проверен с настоящими PG/native и введённой после COMMIT ошибкой подтверждения; новый browser UI сохраняет snapshot и сверяет историю. ROS-8/9 API/SQL/native приняты в описанных границах. Browser-смена пары/длительности и удаление во время native-теста приняты в12.5.24. Реальный отказ bandwidth-аутентификации принят в12.5.25. 12.5.26 обнаружил и локально исправил30s timeout Next proxy. Исправленный frontendaa7dbdf развёрнут и проверен в12.5.27; backend8782054 прежний. ROS-3 reverse2→1/native-afterping принят в12.5.28; forward timeout открыт. Следующий12.5.29 — real browserform/deployment UI-подсказок. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) сохраняют точные доказательства и ограничения.
|
||||
|
||||
Реальные pg_dump/pg_restore, PG rollback и остановка UDP worker требуют внешней приёмки. Датированные продолжения ниже — история; точный следующий шаг также указан в начале [журнала](ux-ui-progress.md).
|
||||
|
||||
|
||||
+15
-1
@@ -1,6 +1,6 @@
|
||||
# UX/UI: журнал реализации
|
||||
|
||||
Актуальное продолжение 2026-10-08: 12.5.27 завершён — frontendaa7dbdf/proxy180s собран, real browser timeout получил502 вместо500, previousTX42/historyerror сохранены, native1/без автоповтора/JS0/320fits. Frontend развёрнут, backend8782054healthy, пять основных экранов/контрольБД passed. Следующий12.5.28 — ROS-3: выбор интерфейса, фактический адрес bandwidth-test и after-ping. Native can not connect/busy/disconnect/abort и полный12.5 открыты.
|
||||
Актуальное продолжение 2026-10-08: 12.5.28 подтвердил ROS-3 для2→1: native адрес194.226.121.150 без binding, after-ping interfaceether1/0%loss, SQLhistorydone. Три1→2 попытки timeout, этот путь не принят. Локально исправлены CLI where interface и пояснение формы; browser320/typecheck/ESLint passed, ещё не развёрнуты. Runtimebackend8782054/frontendaa7dbdf прежний. Следующий12.5.29 — browserform/deployment UI-подсказок, диагностика forward-сценария остаётся открытой.
|
||||
|
||||
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
|
||||
|
||||
@@ -34,6 +34,20 @@
|
||||
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в описанных границах:12.3.83,main1186/1186,context221/221. Этап остаётся в работе: стенд12.5.1–3 развёрнут,bootstrap/smoke проверены;остальные сценарии12.5 не выполнены. |
|
||||
|
||||
## 12.5.28 — интерфейс bandwidth-test и after-ping; уточнение формы (2026-10-08)
|
||||
|
||||
[Real native/API/SQL evidence](ux-ui/acceptance/speed-interface-2026-10-08.json): backend8782054, выделенная mmapp_acceptance_20261007; реальные inventory и команды, HTTP/RouterOS-моков нет. На обоих CHR активны ether1/lo. НаCHR1 ether1 имеет dynamic194.226.121.150/24; наCHR2 dynamic104.165.244.7/24 иstatic195.195.195.195/32. Существующая конфигурация RouterOS не менялась. API каталога предпочитает static195 при явном выборе ether1 назначения. Это не тот же адрес, что host/API104.
|
||||
|
||||
Три попытки1→2 (дважды с выбранным ether1 назначения, один разauto) получили502/transport timeout и historyerror; никакая из них не объявлена успешной. Bandwidth-server enabledtrue/authenticatetrue/maxsessions100 наобоихCHR, Ping1→2 и2→1 поether1 подтвердил2/2/0%loss. Причина timeout1→2/auto не установлена. Нельзя заключать, что её вызвала ошибка приложения или исключительноstaticадрес.
|
||||
|
||||
Отдельная принятая команда2→1: srcInterfaceether1, dstInterfaceauto, TCPtransmit3s/HTTP200. Wrapper считал и записывал только несекретные параметры настоящих вызовов: bandwidth address194.226.121.150 без interface-параметра; after-ping addressтотже/count4/interfaceether1/interval1s. API/SQLhistorydone, TX3756.788128/RXnull, Ping53ms/0%loss. srcInterfaceAddress195 — metadata выбранного интерфейса, не доказательство фактического source IP bandwidth packets. Native routing определяет RouterOS; source-interface binding не реализован. В принятом прогоне native1, всего4 команды с учётом трёх непрошедшихforward-прогонов. Это функциональная проверка, не benchmark/multi-WAN proof.
|
||||
|
||||
В форме локально добавлено пояснение: интерфейс источника используется для Ping после теста, интерфейс назначения выбираетIP/staticfirst, маршрутbandwidth-test определяетRouterOS. Исправлена CLI-подсказка /ip address print where interface= вместоwhere name=; [синтаксис RouterOS](https://help.mikrotik.com/docs/spaces/ROS/pages/47579229/Scripting). Установленные ReUI/Frame-композиции сохранены, новый компонент не устанавливался.
|
||||
|
||||
Проверки локального UI: uptime-speed-interface.spec.ts1/1 сHTTP-фикстурами — открытие формы, приоритет адреса изAPI, корректныйCLI/Ping, пояснение и320px fits; scopedfrontend TypeScript/ESLint passed. Это локальная проверка формы, не realbrowserproof новых текстов. Runtimefrontendaa7dbdf прежний, новыеUIизменения ещё не развёрнуты.
|
||||
|
||||
Временные --rm containers закрыты, testprobes0; история тестов только в выделеннойБД, основнаяhistory5/backend8782054healthok сохранены. ROS-3 принят дляобратнойкоманды в перечисленных границах; forward2interface/auto не принят. Следующий12.5.29 — realbrowserform/deploymentподсказок; forward-native диагностика иполный12.5 остаются открытыми. План/паспорт/протокол обновлены, локальный коммит без push.
|
||||
|
||||
## 12.5.27 — приёмка и deployment исправленного Next proxy (2026-10-08)
|
||||
|
||||
Frontend production-образ sourceaa7dbdf608ca4da4986826fca956543f40922841 собран из чистого предыдущего context8782054 с зафиксированным next.config.ts; git diff подтвердил, что это единственное изменение runtime source frontend. Build/встроенный TypeScript passed; proxyTimeout180000 отражён в build config. Backend image8782054 не менялся.
|
||||
|
||||
+15
-1
@@ -1,6 +1,6 @@
|
||||
# Этап 12: итоговая приёмка UX/UI
|
||||
|
||||
Актуальное продолжение 2026-10-08: 12.5.27 завершён — frontendaa7dbdf/proxy180s собран, real browser timeout получил502 вместо500, previousTX42/historyerror сохранены, native1/без автоповтора/JS0/320fits. Frontend развёрнут, backend8782054healthy, пять основных экранов/контрольБД passed. Следующий12.5.28 — ROS-3: выбор интерфейса, фактический адрес bandwidth-test и after-ping. Native can not connect/busy/disconnect/abort и полный12.5 открыты.
|
||||
Актуальное продолжение 2026-10-08: 12.5.28 подтвердил ROS-3 для2→1: native адрес194.226.121.150 без binding, after-ping interfaceether1/0%loss, SQLhistorydone. Три1→2 попытки timeout, этот путь не принят. Локально исправлены CLI where interface и пояснение формы; browser320/typecheck/ESLint passed, ещё не развёрнуты. Runtimebackend8782054/frontendaa7dbdf прежний. Следующий12.5.29 — browserform/deployment UI-подсказок, диагностика forward-сценария остаётся открытой.
|
||||
|
||||
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
|
||||
|
||||
@@ -1238,3 +1238,17 @@ Frontend production-образ sourceaa7dbdf608ca4da4986826fca956543f40922841 с
|
||||
[Пять основных экранов](ux-ui/acceptance/deploy-browser-aa7dbdf-2026-10-08.json): dashboard/servers/uptime-speed/settings/filters200, ПК/320px fits,0JSerrors/0API>=400, HTTP-моков нет. Temporaryfrontend/backend/network/3018 закрыты, destinationhost восстановлен и проверен, testprobes0; основной стенд/туннель сохранены.
|
||||
|
||||
Локальная regression31s/TypeScript/ESLint12.5.26 и real production browser proof подтверждают исправление proxy. ROS-2 transport timeout принят в этих границах; native can not connect/busy/disconnect/abort и Portal/multi-instance остаются открытыми. Следующий12.5.28 — ROS-3: фактический адрес native bandwidth-test и интерфейс after-ping. План/паспорт/протокол обновлены; локальный коммит без push.
|
||||
|
||||
## 12.5.28 — интерфейс bandwidth-test и after-ping; уточнение формы (2026-10-08)
|
||||
|
||||
[Real native/API/SQL evidence](ux-ui/acceptance/speed-interface-2026-10-08.json): backend8782054, выделенная mmapp_acceptance_20261007; реальные inventory и команды, HTTP/RouterOS-моков нет. На обоих CHR активны ether1/lo. НаCHR1 ether1 имеет dynamic194.226.121.150/24; наCHR2 dynamic104.165.244.7/24 иstatic195.195.195.195/32. Существующая конфигурация RouterOS не менялась. API каталога предпочитает static195 при явном выборе ether1 назначения. Это не тот же адрес, что host/API104.
|
||||
|
||||
Три попытки1→2 (дважды с выбранным ether1 назначения, один разauto) получили502/transport timeout и historyerror; никакая из них не объявлена успешной. Bandwidth-server enabledtrue/authenticatetrue/maxsessions100 наобоихCHR, Ping1→2 и2→1 поether1 подтвердил2/2/0%loss. Причина timeout1→2/auto не установлена. Нельзя заключать, что её вызвала ошибка приложения или исключительноstaticадрес.
|
||||
|
||||
Отдельная принятая команда2→1: srcInterfaceether1, dstInterfaceauto, TCPtransmit3s/HTTP200. Wrapper считал и записывал только несекретные параметры настоящих вызовов: bandwidth address194.226.121.150 без interface-параметра; after-ping addressтотже/count4/interfaceether1/interval1s. API/SQLhistorydone, TX3756.788128/RXnull, Ping53ms/0%loss. srcInterfaceAddress195 — metadata выбранного интерфейса, не доказательство фактического source IP bandwidth packets. Native routing определяет RouterOS; source-interface binding не реализован. В принятом прогоне native1, всего4 команды с учётом трёх непрошедшихforward-прогонов. Это функциональная проверка, не benchmark/multi-WAN proof.
|
||||
|
||||
В форме локально добавлено пояснение: интерфейс источника используется для Ping после теста, интерфейс назначения выбираетIP/staticfirst, маршрутbandwidth-test определяетRouterOS. Исправлена CLI-подсказка /ip address print where interface= вместоwhere name=; [синтаксис RouterOS](https://help.mikrotik.com/docs/spaces/ROS/pages/47579229/Scripting). Установленные ReUI/Frame-композиции сохранены, новый компонент не устанавливался.
|
||||
|
||||
Проверки локального UI: uptime-speed-interface.spec.ts1/1 сHTTP-фикстурами — открытие формы, приоритет адреса изAPI, корректныйCLI/Ping, пояснение и320px fits; scopedfrontend TypeScript/ESLint passed. Это локальная проверка формы, не realbrowserproof новых текстов. Runtimefrontendaa7dbdf прежний, новыеUIизменения ещё не развёрнуты.
|
||||
|
||||
Временные --rm containers закрыты, testprobes0; история тестов только в выделеннойБД, основнаяhistory5/backend8782054healthok сохранены. ROS-3 принят дляобратнойкоманды в перечисленных границах; forward2interface/auto не принят. Следующий12.5.29 — realbrowserform/deploymentподсказок; forward-native диагностика иполный12.5 остаются открытыми. План/паспорт/протокол обновлены, локальный коммит без push.
|
||||
@@ -157,3 +157,7 @@ ssh -N -L 3000:127.0.0.1:3000 -L 8000:127.0.0.1:8000 root@161.104.46.222
|
||||
## Новый frontend proxy timeout — 2026-10-08
|
||||
|
||||
12.5.27 [real browser timeout502](ux-ui/acceptance/speed-unreachable-error-2026-10-08.json), [frontend deployment](ux-ui/acceptance/deployed-frontend-aa7dbdf-2026-10-08.json), [пять экранов](ux-ui/acceptance/deploy-browser-aa7dbdf-2026-10-08.json) passed. Frontendaa7dbdf/proxy180s, backend8782054healthy прежний; MMAPP_IMAGE_TAG=ux-aa7dbdf/BACKEND_IMAGE_TAG=ux-8782054. Основной DBcontrol совпал. Isolatedhost/probe восстановлены/удалены, temporarycontainers/network/3018 закрыты. Это transport timeout, не native can not connect; техническая подпись timeout остаётся ограничением UX. Следующий12.5.28 — ROS-3 interface/address/after-ping.
|
||||
|
||||
## Интерфейс native test и Ping — 2026-10-08
|
||||
|
||||
12.5.28 [real ROS-3](ux-ui/acceptance/speed-interface-2026-10-08.json): reverse2→1 done, bandwidth194.226.121.150/nointerfacebinding, Pingether1/0%loss; metadata source195 не доказываетsourceIPpackets. CHR2 имеет dynamic104/static195, явныйdstinterface предпочитаетstatic. Три1→2 попыткиtimeout, причинаauto-path не установлена; они не приняты. КонфигурацияRouterOS не менялась. Основнойruntimebackend8782054/frontendaa7dbdf/history5 сохранён. UIhint/CLIwhereinterface исправлены локально; browserfixture/typecheck/ESLint passed, не развёрнуты. Следующий12.5.29 — real browserform/deploymentподсказок.
|
||||
@@ -0,0 +1,138 @@
|
||||
{
|
||||
"date": "2026-10-08",
|
||||
"backendSource": "8782054078304f36cc611876af2d17f87b857f60",
|
||||
"database": "mmapp_acceptance_20261007",
|
||||
"httpMocks": false,
|
||||
"routerOsMocks": false,
|
||||
"inventory": [
|
||||
{
|
||||
"id": 1,
|
||||
"host": "194.226.121.150",
|
||||
"interfaces": [
|
||||
"ether1",
|
||||
"lo"
|
||||
],
|
||||
"addresses": [
|
||||
{
|
||||
"interface": "ether1",
|
||||
"address": "194.226.121.150/24",
|
||||
"dynamic": "true"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"host": "104.165.244.7",
|
||||
"interfaces": [
|
||||
"ether1",
|
||||
"lo"
|
||||
],
|
||||
"addresses": [
|
||||
{
|
||||
"interface": "ether1",
|
||||
"address": "104.165.244.7/24",
|
||||
"dynamic": "true"
|
||||
},
|
||||
{
|
||||
"interface": "ether1",
|
||||
"address": "195.195.195.195/32",
|
||||
"dynamic": "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"selectedDestination": {
|
||||
"preferredStaticAddress": "195.195.195.195",
|
||||
"earlierForwardTests": "timeout"
|
||||
},
|
||||
"httpStatus": 200,
|
||||
"nativeCount": 1,
|
||||
"bandwidth": {
|
||||
"address": "194.226.121.150",
|
||||
"protocol": "tcp",
|
||||
"direction": "transmit",
|
||||
"durationSec": 3,
|
||||
"hasInterfaceParameter": false
|
||||
},
|
||||
"pingCalls": [
|
||||
{
|
||||
"address": "194.226.121.150",
|
||||
"count": 4,
|
||||
"interface": "ether1",
|
||||
"interval": "1s"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"runId": "acceptance-interface-1791428239785",
|
||||
"srcInterfaceAddress": "195.195.195.195",
|
||||
"dstInterfaceAddress": null,
|
||||
"afterBtPing": {
|
||||
"rttMs": 53,
|
||||
"lossPct": 0,
|
||||
"error": null
|
||||
}
|
||||
},
|
||||
"history": [
|
||||
{
|
||||
"id": "acceptance-interface-1791428239785",
|
||||
"src_interface": "ether1",
|
||||
"dst_interface": "",
|
||||
"src_interface_address": "195.195.195.195",
|
||||
"dst_interface_address": null,
|
||||
"status": "done",
|
||||
"tx_avg_mbps": 3756.7881279999997,
|
||||
"rx_avg_mbps": null,
|
||||
"ping_rtt_ms": 53,
|
||||
"ping_loss_pct": 0
|
||||
}
|
||||
],
|
||||
"limits": [
|
||||
"Bandwidth routing chosen by RouterOS, no source-interface binding",
|
||||
"One actual interface per CHR; multi-WAN route selection not tested",
|
||||
"Accepted reverse command1; three earlier forward attempts timed out, forward path remains unaccepted",
|
||||
"API/SQL/native proof; browser form not tested in this block"
|
||||
],
|
||||
"firstInventoryAddresses": [
|
||||
{
|
||||
"interface": "ether1",
|
||||
"address": "194.226.121.150"
|
||||
},
|
||||
{
|
||||
"interface": "ether1",
|
||||
"address": "104.165.244.7"
|
||||
}
|
||||
],
|
||||
"acceptedContext": {
|
||||
"srcServerId": 2,
|
||||
"dstServerId": 1,
|
||||
"srcInterface": "ether1",
|
||||
"dstInterface": "auto"
|
||||
},
|
||||
"forwardAttempts": [
|
||||
{
|
||||
"id": "acceptance-interface-1791427768086",
|
||||
"srcInterface": "ether1",
|
||||
"dstInterface": "ether1",
|
||||
"status": "error"
|
||||
},
|
||||
{
|
||||
"id": "acceptance-selected-destination-1791428012326",
|
||||
"srcInterface": "ether1",
|
||||
"dstInterface": "ether1",
|
||||
"status": "error"
|
||||
},
|
||||
{
|
||||
"id": "acceptance-interface-1791428042466",
|
||||
"srcInterface": "ether1",
|
||||
"dstInterface": "auto",
|
||||
"status": "error"
|
||||
}
|
||||
],
|
||||
"cleanup": {
|
||||
"testProbesRemaining": 0,
|
||||
"temporaryContainersRemoved": true,
|
||||
"mainHistoryCountUnchanged": 5,
|
||||
"mainHealth": "ok",
|
||||
"mainBackendVersion": "1.0.0-test.8782054"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
import { test, expect } from "@playwright/test"
|
||||
import { server } from "./fixtures/users"
|
||||
|
||||
test("Speed: форма использует адрес каталога и разделяет маршрут теста и Ping-интерфейс", async ({ page }) => {
|
||||
const probe = { id: "iface-probe", srcServerId: "1", dstServerId: "2", srcInterface: "ether1", dstInterface: "ether1", protocol: "tcp", direction: "transmit", durationSec: "3", enabled: true, lastRunAt: null, lastStatus: null, lastError: null, lastTxAvgMbps: null, lastRxAvgMbps: null }
|
||||
await page.route("**/health", route => route.fulfill({ json: { ok: true } }))
|
||||
await page.route("**/api/**", route => {
|
||||
const path = new URL(route.request().url()).pathname
|
||||
return route.fulfill({ json:
|
||||
path === "/api/auth/config" ? { required: false } :
|
||||
path === "/api/servers" ? [server, { ...server, id: 2, name: "Назначение", host: "198.51.100.2" }] :
|
||||
path === "/api/uptime/overview" ? { probes: [], resources: [] } :
|
||||
path === "/api/uptime/speed-probes" ? { probes: [probe] } :
|
||||
path === "/api/uptime/speed-test/runs" ? { runs: [] } :
|
||||
path.includes("/speed-test/endpoints/") ? { interfaces: [{ name: "ether1", running: true, disabled: false, addresses: path.includes("/2/") ? ["195.195.195.195", "198.51.100.2"] : ["192.0.2.1"] }] } : {},
|
||||
})
|
||||
})
|
||||
await page.goto("/uptime?tab=speed")
|
||||
await page.getByRole("button", { name: "Редактировать speed-пробу", exact: true }).click()
|
||||
const dialog = page.getByRole("dialog")
|
||||
const commands = dialog.locator("pre")
|
||||
await expect(commands).toContainText('/ip address print where interface="ether1"')
|
||||
await expect(commands).not.toContainText("where name=")
|
||||
await expect(commands).toContainText('/ping address=195.195.195.195 count=4 interface="ether1"')
|
||||
await expect(commands).toContainText("/tool bandwidth-test address=195.195.195.195")
|
||||
await expect(dialog).toContainText("Интерфейс источника используется для Ping после теста")
|
||||
await expect(dialog).toContainText("Маршрут bandwidth-test определяет RouterOS")
|
||||
await page.setViewportSize({ width: 320, height: 900 })
|
||||
expect(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth)).toBe(true)
|
||||
})
|
||||
Reference in new issue
Block a user