forked from kay/RouterOS
M25: Einrichten-Wizard-Politur + SSH-Trust-Persistenz endlich verifiziert
- WAN-Schritt: fehlenden "Zurück"-Button ergänzt (beide Modi) - "Abbrechen"/"Jetzt sichern" prominent gemacht (wie "Neu scannen") - LAN-/VLAN-Schritt: Adressfelder starten leer, nur Format-Beispiel im Feld sichtbar statt vorbelegter Werte. VlanStepView bekam dafür eine Validierungssperre auf "Weiter" (fehlte bisher, war ok solange Defaults immer gültig waren). Zwei Tests entsprechend angepasst. - SSH-Host-Key-Trust aus M24 hatte sich entgegen der Live-Bestätigung nie tatsächlich persistiert (defaults read zeigte leeren Schlüssel, Ursache ungeklärt) — betraf BackupServices dedizierte SSH-Verbindung beim ersten Experte-Tab-Schreibversuch pro Sitzung. Erneut über den bestehenden Trust-Dialog bestätigt, diesmal per defaults read verifiziert statt nur der UI-Bestätigung vertraut. Alles live bestätigt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -40,7 +40,15 @@ final class RouterOSCommandBuilderTests: XCTestCase {
|
||||
}
|
||||
|
||||
func testLanDhcpCommandsCoverAddressPoolServerAndNetwork() {
|
||||
let config = LanDhcpConfig()
|
||||
// Address fields default to "" now (Nutzerwunsch, 2026-09-16: fields start empty,
|
||||
// showing only the format example) — set explicitly here so this test keeps verifying
|
||||
// the command-building logic itself, not incidentally the model's old default values.
|
||||
var config = LanDhcpConfig()
|
||||
config.networkAddress = "192.168.88.0/24"
|
||||
config.routerAddress = "192.168.88.1/24"
|
||||
config.poolRangeStart = "192.168.88.10"
|
||||
config.poolRangeEnd = "192.168.88.254"
|
||||
config.dnsServers = "192.168.88.1"
|
||||
let commands = config.buildCommands()
|
||||
|
||||
XCTAssertEqual(commands.count, 6)
|
||||
|
||||
@@ -23,12 +23,16 @@ final class VlanEntryTests: XCTestCase {
|
||||
XCTAssertEqual(commands[7].arguments["interface"], "vlan20")
|
||||
}
|
||||
|
||||
func testDefaultAddressesAreDerivedFromVlanID() {
|
||||
/// Address fields start empty by design (Nutzerwunsch, 2026-09-16: "die auszufüllenden
|
||||
/// Felder leer lassen, nur Beispiele zeigen ... so sieht man das Schema dahinter") — a
|
||||
/// previous version auto-derived these from the VLAN ID; replaced with this test.
|
||||
func testDefaultAddressesStartEmptyForExamplePlaceholder() {
|
||||
let vlan = VlanEntry(vlanID: 30, parentInterface: "bridge")
|
||||
|
||||
XCTAssertEqual(vlan.routerAddress, "192.168.30.1/24")
|
||||
XCTAssertEqual(vlan.networkAddress, "192.168.30.0/24")
|
||||
XCTAssertEqual(vlan.poolRangeStart, "192.168.30.10")
|
||||
XCTAssertEqual(vlan.poolRangeEnd, "192.168.30.254")
|
||||
XCTAssertEqual(vlan.routerAddress, "")
|
||||
XCTAssertEqual(vlan.networkAddress, "")
|
||||
XCTAssertEqual(vlan.poolRangeStart, "")
|
||||
XCTAssertEqual(vlan.poolRangeEnd, "")
|
||||
XCTAssertEqual(vlan.dnsServers, "")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user