Bug 28: dynamische Routen (distance=0) nicht mehr über die Übersicht editierbar
Eine dynamische/verbundene Route (automatisch angelegt durch eine IP-Adresse auf einem Interface) scheiterte beim Bearbeiten mit "no such item (4)" — bestätigt per /ip route print detail: D-Flag, distance=0. RouterOS' "dynamic"-Flag steht nicht zuverlässig in print terse (dasselbe Problem schon bei DHCP-Leases dokumentiert), aber distance=0 ist ein verlässliches Signal, da keine echte statische Route das je haben kann. Solche Routen bekommen jetzt kein editTarget mehr — ihre .id ist ohnehin nicht stabil, RouterOS kann sie jederzeit neu anlegen. 59 Unit-Tests grün (neuer Test OverviewGraphTests. testDynamicRouteHasNoEditTarget). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YDmUd93KxsYGr2kLTotWnG
This commit is contained in:
@@ -135,4 +135,19 @@ final class OverviewGraphTests: XCTestCase {
|
||||
let addressList = graph.nodes.first { $0.id == "Firewall & NAT:addrlist:gesperrt" }
|
||||
XCTAssertNil(addressList?.editTarget)
|
||||
}
|
||||
|
||||
/// A dynamic/connected route (distance=0, auto-created by an interface address) must not be
|
||||
/// offered for editing — confirmed live: RouterOS rejects resending its own distance=0
|
||||
/// ("value of distance out of range (1...255)"), and its .id isn't stable either.
|
||||
func testDynamicRouteHasNoEditTarget() {
|
||||
let graph = OverviewViewModel.buildGraph(
|
||||
interfaces: [], bridgePorts: [], vlans: [], wireguardPeers: [], addresses: [],
|
||||
pools: [], dhcpServers: [], dhcpNetworks: [], dhcpClients: [],
|
||||
routes: [item(["dst-address": "192.168.88.0/24", "gateway": "bridge", "distance": "0"], id: "*201C5060")],
|
||||
filterRules: [], natRules: [], addressLists: []
|
||||
)
|
||||
|
||||
let route = graph.nodes.first { $0.id == "route:0" }
|
||||
XCTAssertNil(route?.editTarget)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user