chore(test): подтвердить мобильные панели WireGuard на стенде
This commit is contained in:
1 parent
bf43263e43
commit
a1183f2ec9
15 files changed
+630
-7
No files matched your search
@@ -0,0 +1,314 @@
|
||||
{
|
||||
"date": "2026-10-08",
|
||||
"backendSource": "3722fad",
|
||||
"frontendSource": "bf43263",
|
||||
"name": "mm-acceptance-wg-ui-1791475047653",
|
||||
"httpMocks": false,
|
||||
"cases": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"createViaUi": true,
|
||||
"createReceipt": 201,
|
||||
"nativeInterfaceAddressAndKeyGeneration": true,
|
||||
"peerViaUi": true,
|
||||
"peerReceipt": 201,
|
||||
"nativePeerFields": true,
|
||||
"disableEnableViaUi": true,
|
||||
"nativeToggleAndDataPreserved": true,
|
||||
"deleteViaUi": true,
|
||||
"noNativeRemainders": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"createViaUi": true,
|
||||
"createReceipt": 201,
|
||||
"nativeInterfaceAddressAndKeyGeneration": true,
|
||||
"peerViaUi": true,
|
||||
"peerReceipt": 201,
|
||||
"nativePeerFields": true,
|
||||
"disableEnableViaUi": true,
|
||||
"nativeToggleAndDataPreserved": true,
|
||||
"deleteViaUi": true,
|
||||
"noNativeRemainders": true
|
||||
}
|
||||
],
|
||||
"layoutCases": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"theme": "dark",
|
||||
"kind": "create",
|
||||
"width": 1280,
|
||||
"sheetWidth": 448,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"theme": "dark",
|
||||
"kind": "create",
|
||||
"width": 320,
|
||||
"sheetWidth": 320,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"theme": "dark",
|
||||
"kind": "peer",
|
||||
"width": 1280,
|
||||
"sheetWidth": 448,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"theme": "dark",
|
||||
"kind": "peer",
|
||||
"width": 320,
|
||||
"sheetWidth": 320,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"theme": "dark",
|
||||
"kind": "import",
|
||||
"width": 1280,
|
||||
"sheetWidth": 512,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"theme": "dark",
|
||||
"kind": "import",
|
||||
"width": 320,
|
||||
"sheetWidth": 320,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"theme": "light",
|
||||
"kind": "create",
|
||||
"width": 1280,
|
||||
"sheetWidth": 448,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"theme": "light",
|
||||
"kind": "create",
|
||||
"width": 320,
|
||||
"sheetWidth": 320,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"theme": "light",
|
||||
"kind": "peer",
|
||||
"width": 1280,
|
||||
"sheetWidth": 448,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"theme": "light",
|
||||
"kind": "peer",
|
||||
"width": 320,
|
||||
"sheetWidth": 320,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"theme": "light",
|
||||
"kind": "import",
|
||||
"width": 1280,
|
||||
"sheetWidth": 512,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 1,
|
||||
"theme": "light",
|
||||
"kind": "import",
|
||||
"width": 320,
|
||||
"sheetWidth": 320,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"theme": "dark",
|
||||
"kind": "create",
|
||||
"width": 1280,
|
||||
"sheetWidth": 448,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"theme": "dark",
|
||||
"kind": "create",
|
||||
"width": 320,
|
||||
"sheetWidth": 320,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"theme": "dark",
|
||||
"kind": "peer",
|
||||
"width": 1280,
|
||||
"sheetWidth": 448,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"theme": "dark",
|
||||
"kind": "peer",
|
||||
"width": 320,
|
||||
"sheetWidth": 320,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"theme": "dark",
|
||||
"kind": "import",
|
||||
"width": 1280,
|
||||
"sheetWidth": 512,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"theme": "dark",
|
||||
"kind": "import",
|
||||
"width": 320,
|
||||
"sheetWidth": 320,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"theme": "light",
|
||||
"kind": "create",
|
||||
"width": 1280,
|
||||
"sheetWidth": 448,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"theme": "light",
|
||||
"kind": "create",
|
||||
"width": 320,
|
||||
"sheetWidth": 320,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"theme": "light",
|
||||
"kind": "peer",
|
||||
"width": 1280,
|
||||
"sheetWidth": 448,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"theme": "light",
|
||||
"kind": "peer",
|
||||
"width": 320,
|
||||
"sheetWidth": 320,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"theme": "light",
|
||||
"kind": "import",
|
||||
"width": 1280,
|
||||
"sheetWidth": 512,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"theme": "light",
|
||||
"kind": "import",
|
||||
"width": 320,
|
||||
"sheetWidth": 320,
|
||||
"footerButtonsFit": true,
|
||||
"noPageOverflow": true
|
||||
}
|
||||
],
|
||||
"requests": [
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/interfaces",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/interfaces",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/peers",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"path": "/api/wireguard/peers",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/api/wireguard/interfaces/1/*C",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/api/wireguard/interfaces/1/*C",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/api/wireguard/interfaces/2/*8",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "PATCH",
|
||||
"path": "/api/wireguard/interfaces/2/*8",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/api/wireguard/interfaces/1/*C",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"path": "/api/wireguard/interfaces/2/*8",
|
||||
"status": 200
|
||||
}
|
||||
],
|
||||
"pageErrors": [],
|
||||
"badApiResponses": [],
|
||||
"pingBeforeAndAfterToggle": true,
|
||||
"menuReopens": 0,
|
||||
"limits": [
|
||||
"Keys used in memory only, not persisted",
|
||||
"Create interface/peer, toggle, delete via real production UI",
|
||||
"Short handshake/ICMP; no export/import, throughput, failures or RBAC"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"date": "2026-10-08",
|
||||
"backendSource": "3722fad329a68a8721ebfda8e044ab6cb5830cca",
|
||||
"frontendSource": "bf43263e43ae375651237e019fe1aae55e848308",
|
||||
"httpMocks": false,
|
||||
"pages": [
|
||||
{
|
||||
"path": "/dashboard",
|
||||
"status": 200,
|
||||
"mobileFits": true
|
||||
},
|
||||
{
|
||||
"path": "/servers",
|
||||
"status": 200,
|
||||
"mobileFits": true
|
||||
},
|
||||
{
|
||||
"path": "/uptime?tab=speed",
|
||||
"status": 200,
|
||||
"mobileFits": true
|
||||
},
|
||||
{
|
||||
"path": "/settings",
|
||||
"status": 200,
|
||||
"mobileFits": true
|
||||
},
|
||||
{
|
||||
"path": "/filters",
|
||||
"status": 200,
|
||||
"mobileFits": true
|
||||
},
|
||||
{
|
||||
"path": "/alerts",
|
||||
"status": 200,
|
||||
"mobileFits": true
|
||||
}
|
||||
],
|
||||
"pageErrors": [],
|
||||
"badApiResponses": []
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"date": "2026-10-08",
|
||||
"frontendSource": "bf43263e43ae375651237e019fe1aae55e848308",
|
||||
"backendSource": "3722fad329a68a8721ebfda8e044ab6cb5830cca",
|
||||
"frontendImageId": "sha256:f7463365ad14d98df12f31197a8f76e8147136046cb4a43161270b4bd83587b0",
|
||||
"backendImageId": "sha256:766d07936321df58c1cfb76cbdc949737a44158e8d8aa65b59f391443221eeba",
|
||||
"frontendVersion": "1.0.0-test.bf43263",
|
||||
"backendHealthy": true,
|
||||
"health": {
|
||||
"status": "ok",
|
||||
"timestamp": "2026-10-08T15:58:00.348Z",
|
||||
"version": "1.0.0-test.3722fad",
|
||||
"eventLoopDelayMs": 20,
|
||||
"flowWorker": {
|
||||
"alive": false,
|
||||
"bound": false,
|
||||
"pendingSize": 0,
|
||||
"dropped": 0,
|
||||
"packetsReceived": 0
|
||||
}
|
||||
},
|
||||
"sourceArchiveSha256": "c42edf2983262b62bcc427f7e2922f1c6bf56754abe3b583be73fd71712bd074",
|
||||
"buildExit": 0,
|
||||
"productionTypeScriptPassed": true,
|
||||
"frontendOnlyRestart": true,
|
||||
"rollbackImageRetained": true,
|
||||
"controlBefore": {
|
||||
"servers": 2,
|
||||
"speedHistory": 9,
|
||||
"retentionDays": 14,
|
||||
"migrations": 9
|
||||
},
|
||||
"push": false,
|
||||
"controlAfter": {
|
||||
"servers": 2,
|
||||
"speedHistory": 9,
|
||||
"retentionDays": 14,
|
||||
"migrations": 9
|
||||
},
|
||||
"controlsUnchanged": true
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"date": "2026-10-08",
|
||||
"backendSource": "3722fad",
|
||||
"frontendSource": "bf43263",
|
||||
"name": "mm-acceptance-wg-ui-1791475047653",
|
||||
"listenPort": 51879,
|
||||
"subnet": "198.18.255.240/30",
|
||||
"realRouterOs": true,
|
||||
"pings": [
|
||||
{
|
||||
"round": 1,
|
||||
"results": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"received": 3,
|
||||
"summary": {
|
||||
"sent": "3",
|
||||
"received": "3",
|
||||
"packet-loss": "0",
|
||||
"avg-rtt": "55ms15us"
|
||||
}
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"received": 3,
|
||||
"summary": {
|
||||
"sent": "3",
|
||||
"received": "3",
|
||||
"packet-loss": "0",
|
||||
"avg-rtt": "55ms87us"
|
||||
}
|
||||
}
|
||||
],
|
||||
"passed": true
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"results": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"received": 3,
|
||||
"summary": {
|
||||
"sent": "3",
|
||||
"received": "3",
|
||||
"packet-loss": "0",
|
||||
"avg-rtt": "54ms990us"
|
||||
}
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"received": 3,
|
||||
"summary": {
|
||||
"sent": "3",
|
||||
"received": "3",
|
||||
"packet-loss": "0",
|
||||
"avg-rtt": "56ms906us"
|
||||
}
|
||||
}
|
||||
],
|
||||
"passed": true
|
||||
}
|
||||
],
|
||||
"cleanup": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"/interface/wireguard": true,
|
||||
"/interface/wireguard/peers": true,
|
||||
"/ip/address": true,
|
||||
"/ip/route": true,
|
||||
"/ip/firewall/filter": true,
|
||||
"/ip/firewall/nat": true,
|
||||
"/ip/firewall/mangle": true
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"/interface/wireguard": true,
|
||||
"/interface/wireguard/peers": true,
|
||||
"/ip/address": true,
|
||||
"/ip/route": true,
|
||||
"/ip/firewall/filter": true,
|
||||
"/ip/firewall/nat": true,
|
||||
"/ip/firewall/mangle": true
|
||||
}
|
||||
],
|
||||
"uiCreatesOnly": true,
|
||||
"readRetries": [],
|
||||
"privateBaselineSaved": true,
|
||||
"nativePeerAssociationConfirmed": true,
|
||||
"connectedState": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"host": "194.226.121.150",
|
||||
"expectedAddress": "198.18.255.241/30",
|
||||
"interface": {
|
||||
"rosId": "*C",
|
||||
"appId": "1:*C",
|
||||
"name": "mm-acceptance-wg-ui-1791475047653",
|
||||
"listenPort": "51879",
|
||||
"mtu": "1420",
|
||||
"disabled": "false",
|
||||
"running": "true",
|
||||
"comment": "Temporary UX acceptance mm-acceptance-wg-ui-1791475047653",
|
||||
"keyGenerated": true
|
||||
},
|
||||
"addresses": [
|
||||
"198.18.255.241/30"
|
||||
],
|
||||
"peers": [
|
||||
{
|
||||
"rosId": "*8",
|
||||
"allowedAddresses": "198.18.255.242/32",
|
||||
"endpoint": "104.165.244.7:51879",
|
||||
"keepalive": "5s",
|
||||
"comment": "Temporary UX acceptance mm-acceptance-wg-ui-1791475047653",
|
||||
"disabled": "false",
|
||||
"handshake": "2s",
|
||||
"rx": "1604",
|
||||
"tx": "1696"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"host": "104.165.244.7",
|
||||
"expectedAddress": "198.18.255.242/30",
|
||||
"interface": {
|
||||
"rosId": "*8",
|
||||
"appId": "2:*8",
|
||||
"name": "mm-acceptance-wg-ui-1791475047653",
|
||||
"listenPort": "51879",
|
||||
"mtu": "1420",
|
||||
"disabled": "false",
|
||||
"running": "true",
|
||||
"comment": "Temporary UX acceptance mm-acceptance-wg-ui-1791475047653",
|
||||
"keyGenerated": true
|
||||
},
|
||||
"addresses": [
|
||||
"198.18.255.242/30"
|
||||
],
|
||||
"peers": [
|
||||
{
|
||||
"rosId": "*5",
|
||||
"allowedAddresses": "198.18.255.241/32",
|
||||
"endpoint": "194.226.121.150:51879",
|
||||
"keepalive": "5s",
|
||||
"comment": "Temporary UX acceptance mm-acceptance-wg-ui-1791475047653",
|
||||
"disabled": "false",
|
||||
"handshake": "2s",
|
||||
"rx": "1548",
|
||||
"tx": "1604"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"afterBrowser": [
|
||||
{
|
||||
"serverId": 1,
|
||||
"host": "194.226.121.150",
|
||||
"expectedAddress": "198.18.255.241/30",
|
||||
"interface": null,
|
||||
"addresses": [],
|
||||
"peers": []
|
||||
},
|
||||
{
|
||||
"serverId": 2,
|
||||
"host": "104.165.244.7",
|
||||
"expectedAddress": "198.18.255.242/30",
|
||||
"interface": null,
|
||||
"addresses": [],
|
||||
"peers": []
|
||||
}
|
||||
],
|
||||
"limits": [
|
||||
"Only own WireGuard resources; no default route or firewall changes",
|
||||
"Public keys transferred to browser only in memory; no keys persisted in report",
|
||||
"Short handshake/ICMP, not throughput or failure/RBAC acceptance",
|
||||
"WireGuard revision audit retained"
|
||||
],
|
||||
"privateBaselineMode": "0600"
|
||||
}
|
||||
Reference in new issue
Block a user