diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index a58c5f3c..3e52b8bf 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -1,6 +1,6 @@ # План реализации UX/UI по пятичасовым окнам -Актуальное продолжение 2026-10-07: 12.3.83 завершён: missing/unknown/loss100/zero/error Ping разделены;81browser,types/lint и frontend build прошли. Следующий12.4.10: общая main регрессия на новом HEAD после speed API/UI delta, затем12.4.11 context. Внешняя12.5 не выполнена. +Актуальное продолжение 2026-10-07: 12.4.10 main1186/1186 на9680a64 прошёл,32.8min/193files;37pure+HTTP/RBAC speed API и builds также passed. Следующий12.4.11: полная context матрица. Отдельный новый main report сохранён; прежние результаты не заменены. Внешняя12.5 не выполнена. Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-07. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. diff --git a/docs/ux-ui-progress.md b/docs/ux-ui-progress.md index 90ca34fb..681e262f 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -1,6 +1,6 @@ # UX/UI: журнал реализации -Актуальное продолжение 2026-10-07: 12.3.83 завершён: missing/unknown/loss100/zero/error Ping разделены;81browser,types/lint и frontend build прошли. Следующий12.4.10: общая main регрессия на новом HEAD после speed API/UI delta, затем12.4.11 context. Внешняя12.5 не выполнена. +Актуальное продолжение 2026-10-07: 12.4.10 main1186/1186 на9680a64 прошёл,32.8min/193files;37pure+HTTP/RBAC speed API и builds также passed. Следующий12.4.11: полная context матрица. Отдельный новый main report сохранён; прежние результаты не заменены. Внешняя12.5 не выполнена. Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md). @@ -32,7 +32,15 @@ | 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 | | 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 | | 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 | -| 12 | Итоговая доступность, адаптивность, производительность и регрессия | В работе. Локальные блоки до12.3.83 завершены. Общая main1176/1176 на579e816 и context221/221 наa3fcba0 прошли; последующий функциональный delta проверен73browser/8context. Следующий12.4.10; внешняя12.5 не выполнена. | +| 12 | Итоговая доступность, адаптивность, производительность и регрессия | В работе. Блоки до12.3.83 и main12.4.10:1186/1186 на9680a64 завершены. Следующий12.4.11context; внешняя12.5 не выполнена. | + +## 12.4.10 — общая main регрессия после speed API/UI (2026-10-07) + +Runtime HEAD9680a6422ba951a1737207663acbd6d562710b62:1186/1186passed,193files,0unexpected/skipped/flaky,32.8min. Edge/1worker/retries0/maxFailures12. [Новый итог main](ux-ui/acceptance/main-speed-final-2026-10-07.json); сырой источник tmp/ux-main-speed-final-20261007.json. Предыдущий main1176 на579e816 сохранён отдельно. Во время прогона HEAD и runtime не менялись. Исторические PNG восстановлены по проверенному списку tmp/ux-main-speed-regenerated-screens-20261007.json; перед запуском screenshots были clean. + +Новые10 browser scenarios после прежней общей main вошли в матрицу: конфликт пары, смена пары/длительности, server timestamps/Ping и5 nullable Ping состояний. Дополнительно37pure snapshot/receipt/rate/status/persistence и HTTP/DI/RBAC обоих speed routes прошли на9680a64; contracts/backend/frontend builds уже passed по блокам79–83. В dev logs были отказы фоновых чтений localhost:8000 (OSPF/catalog/sidebar-counts/EvoBGP); backend не запущен, assertion failures нет. Это локальная UI/DI приёмка, реальные интеграции не проверены. + +Следующий12.4.11: полная context матрица на том же runtime. Внешняя12.5 открыта: реальные PG transactions/locks/commit acknowledgement, RouterOS, интеграции и остановка worker требуют стенда. Чужие skill/AGENTS/config/cache изменения не включены. ## 12.3.83 — неизвестный RTT и отсутствие ответов Ping (2026-10-07) diff --git a/docs/ux-ui-stage-12.md b/docs/ux-ui-stage-12.md index ea123eb2..2b394a15 100644 --- a/docs/ux-ui-stage-12.md +++ b/docs/ux-ui-stage-12.md @@ -1,6 +1,6 @@ # Этап 12: итоговая приёмка UX/UI -Актуальное продолжение 2026-10-07: 12.3.83 завершён: missing/unknown/loss100/zero/error Ping разделены;81browser,types/lint и frontend build прошли. Следующий12.4.10: общая main регрессия на новом HEAD после speed API/UI delta, затем12.4.11 context. Внешняя12.5 не выполнена. +Актуальное продолжение 2026-10-07: 12.4.10 main1186/1186 на9680a64 прошёл,32.8min/193files;37pure+HTTP/RBAC speed API и builds также passed. Следующий12.4.11: полная context матрица. Отдельный новый main report сохранён; прежние результаты не заменены. Внешняя12.5 не выполнена. План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push. @@ -936,3 +936,11 @@ Backend возвращает createdAt из того же pingNow, которы 81/81 browser uptime/large history passed, включая5 новых состояний missing/unknown/loss100/zero/error в истории и карточке, отсутствие старого99 и reflow320px. Targeted ESLint0errors/0warnings, non-incremental TypeScript и contracts/frontend production build прошли. Для простой подписи не добавлены повторяющие реализацию unit tests. Исторические3 PNG восстановлены. Backend/native parsing не изменены; реальные native loss/status требуют12.5. Следующий12.4.10: общая main матрица на новом HEAD после блоков79–83; затем12.4.11context. Предыдущие main1176(579e816)/context221(a3fcba0) сохраняются как отдельные результаты, не доказательство нового HEAD. Внешняя12.5 остаётся открытой. + +## 12.4.10 — общая main регрессия после speed API/UI (2026-10-07) + +Runtime HEAD9680a6422ba951a1737207663acbd6d562710b62:1186/1186passed,193files,0unexpected/skipped/flaky,32.8min. Edge/1worker/retries0/maxFailures12. [Новый итог main](ux-ui/acceptance/main-speed-final-2026-10-07.json); сырой источник tmp/ux-main-speed-final-20261007.json. Предыдущий main1176 на579e816 сохранён отдельно. Во время прогона HEAD и runtime не менялись. Исторические PNG восстановлены по проверенному списку tmp/ux-main-speed-regenerated-screens-20261007.json; перед запуском screenshots были clean. + +Новые10 browser scenarios после прежней общей main вошли в матрицу: конфликт пары, смена пары/длительности, server timestamps/Ping и5 nullable Ping состояний. Дополнительно37pure snapshot/receipt/rate/status/persistence и HTTP/DI/RBAC обоих speed routes прошли на9680a64; contracts/backend/frontend builds уже passed по блокам79–83. В dev logs были отказы фоновых чтений localhost:8000 (OSPF/catalog/sidebar-counts/EvoBGP); backend не запущен, assertion failures нет. Это локальная UI/DI приёмка, реальные интеграции не проверены. + +Следующий12.4.11: полная context матрица на том же runtime. Внешняя12.5 открыта: реальные PG transactions/locks/commit acknowledgement, RouterOS, интеграции и остановка worker требуют стенда. Чужие skill/AGENTS/config/cache изменения не включены. diff --git a/docs/ux-ui/acceptance/main-speed-final-2026-10-07.json b/docs/ux-ui/acceptance/main-speed-final-2026-10-07.json new file mode 100644 index 00000000..059722c6 --- /dev/null +++ b/docs/ux-ui/acceptance/main-speed-final-2026-10-07.json @@ -0,0 +1,1371 @@ +{ + "head": "9680a6422ba951a1737207663acbd6d562710b62", + "config": "playwright.config.ts", + "browser": "msedge", + "workers": 1, + "retries": 0, + "maxFailures": 12, + "source": "tmp/ux-main-speed-final-20261007.json", + "stats": { + "startTime": "2026-10-07T10:58:28.913Z", + "duration": 1965804.554, + "expected": 1186, + "skipped": 0, + "unexpected": 0, + "flaky": 0 + }, + "errors": [], + "files": [ + { + "file": "accessibility-shell.spec.ts", + "passed": 20, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "admin-tables.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "alerts-history.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "alerts-layout.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "alerts-outbox.spec.ts", + "passed": 7, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "alerts-pickers.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "alerts-prefix.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "alerts-preview.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "alerts-reader.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "alerts-rules.spec.ts", + "passed": 9, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "alerts-targets.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "alerts-telegram.spec.ts", + "passed": 10, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "backups-data.spec.ts", + "passed": 12, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "backups-dialog-layout.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "backups-job.spec.ts", + "passed": 9, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "backups-layout.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "backups-operations.spec.ts", + "passed": 12, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "backups-settings.spec.ts", + "passed": 9, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "backups-states-layout.spec.ts", + "passed": 9, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "backups-storage.spec.ts", + "passed": 7, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "backups-url.spec.ts", + "passed": 5, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "bgp-data.spec.ts", + "passed": 13, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "bgp-layout.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "bgp-links-freshness.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "certificates-acme.spec.ts", + "passed": 10, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "certificates-data.spec.ts", + "passed": 12, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "certificates-issue.spec.ts", + "passed": 7, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "certificates-layout.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "certificates-renew.spec.ts", + "passed": 10, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "certificates-url.spec.ts", + "passed": 6, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "collector-probes-tables.spec.ts", + "passed": 7, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "communities-copy.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "config-history.spec.ts", + "passed": 11, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "containers-data.spec.ts", + "passed": 14, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "containers-layout.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "containers-operations.spec.ts", + "passed": 12, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "containers-url.spec.ts", + "passed": 10, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "dashboard-data.spec.ts", + "passed": 61, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "dashboard-permissions.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "data-collection-geoip.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "data-collection-history.spec.ts", + "passed": 5, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "data-collection-operations.spec.ts", + "passed": 10, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "data-collection-race.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "data-collection-responsive.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "data-collection-settings.spec.ts", + "passed": 16, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "data-collection-snapshot.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "data-collection-status.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "evobgp-catalog-error.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "evobgp-consumers.spec.ts", + "passed": 18, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "evobgp-counts.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "evobgp-form.spec.ts", + "passed": 7, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "evobgp-provider.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "evobgp-responsive.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "evobgp-test-receipt.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "filters-copy-target.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "filters-copy.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "filters-data.spec.ts", + "passed": 5, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "filters-delete.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "filters-freshness.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "filters-gateways.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "filters-history-lock.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "filters-layout.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "filters-move.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "filters-read-race.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "filters-save.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "firewall-address-toggle.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "firewall-data.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "firewall-delete.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "firewall-draft-reset.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "firewall-freshness.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "firewall-history-lock.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "firewall-move.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "firewall-partial.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "firewall-save.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "firewall-stale.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "firewall-tables.spec.ts", + "passed": 5, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "firewall-toggle.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "geoip-responsive.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "geoip-settings.spec.ts", + "passed": 10, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "gre-data.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "gre-delete.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "gre-form.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "gre-freshness.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "gre-links.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "gre-pools.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "gre-psk.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "gre-readiness.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "gre-toggle.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "gre-vxlan-layout.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ipsec-cert.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ipsec-data.spec.ts", + "passed": 9, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ipsec-delete.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ipsec-freshness.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ipsec-gre-tables.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ipsec-init.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ipsec-layout.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ipsec-operation-lock.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ipsec-peer.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ipsec-readiness.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ipsec-user.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-backups.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-bgp.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-certificates.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-communities.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-filters.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-firewall-scenario.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-firewall.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-gre.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-optimizer-community.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-optimizer-homes.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-optimizer-ospf-preview.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-optimizer-probes.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-optimizer-routes.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-optimizer-wan-matrix.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-ospf-bfd.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-ospf-neighbors.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-ospf-routes.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-recursive-form.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-recursive-routes.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-servers.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-speed-history.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-statistics-pivot.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-statistics.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-uptime-resources.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-users.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-vxlan.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-wireguard-interfaces.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "large-wireguard-peers.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "migrated-tables.spec.ts", + "passed": 6, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "navigation.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "netflow-responsive.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "netflow-settings.spec.ts", + "passed": 17, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "network-filters-table.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "network-map-data.spec.ts", + "passed": 12, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "network-map-detail.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "network-map-flow.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "network-map-layout.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "network-map-url.spec.ts", + "passed": 7, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "optimizer-matrix-geometry.spec.ts", + "passed": 6, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "optimizer-site-summary.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ospf-data.spec.ts", + "passed": 7, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ospf-freshness.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ospf-identity.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ospf-interface-values.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ospf-layout.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ospf-links.spec.ts", + "passed": 10, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ospf-operations.spec.ts", + "passed": 6, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ospf-states.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "ospf-values.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "page-header.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "probes-data.spec.ts", + "passed": 31, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "probes-layout.spec.ts", + "passed": 5, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "probes-schedule.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "probes-source.spec.ts", + "passed": 7, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "recursive-routes-data.spec.ts", + "passed": 15, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "recursive-routes-layout.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "recursive-routes-links.spec.ts", + "passed": 11, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "recursive-routes-table.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "recursive-routes-values.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "releases-layout.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "route-optimizer-data.spec.ts", + "passed": 10, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "route-optimizer-layout.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "route-optimizer-observed.spec.ts", + "passed": 6, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "route-optimizer-ospf-apply.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "route-optimizer-ospf-preview.spec.ts", + "passed": 15, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "route-optimizer-tables.spec.ts", + "passed": 6, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "route-optimizer-trust.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "routing-tables.spec.ts", + "passed": 10, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "servers.spec.ts", + "passed": 35, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "settings-general.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "sidebar-counts.spec.ts", + "passed": 5, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "statistics-data.spec.ts", + "passed": 15, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "system-database-form.spec.ts", + "passed": 8, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "system-database-receipt.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "terminal-data.spec.ts", + "passed": 17, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "terminal-layout.spec.ts", + "passed": 3, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "traffic-details.spec.ts", + "passed": 10, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "traffic-flow.spec.ts", + "passed": 28, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "traffic-list.spec.ts", + "passed": 2, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "traffic-live.spec.ts", + "passed": 5, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "traffic-mobile.spec.ts", + "passed": 6, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "uptime-links.spec.ts", + "passed": 69, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "uptime-speed-data.spec.ts", + "passed": 11, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "users-catalog.spec.ts", + "passed": 17, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "users-data.spec.ts", + "passed": 12, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "users-layout.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "users-operations.spec.ts", + "passed": 15, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "vpn-inventory.spec.ts", + "passed": 4, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "vxlan-freshness.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "vxlan-links.spec.ts", + "passed": 15, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "vxlan-table.spec.ts", + "passed": 1, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "wireguard-links.spec.ts", + "passed": 37, + "failed": 0, + "skipped": 0, + "flaky": 0 + }, + { + "file": "wireguard-tables.spec.ts", + "passed": 5, + "failed": 0, + "skipped": 0, + "flaky": 0 + } + ] +}