fix(260923-ku6): Verbindungstest prueft Formularwerte statt gespeicherten Stand
Nachbesserung aus dem Browser-Rundgang zu 260923-dhh (Befund 1): "Verbindung testen" pruefte bislang immer den in der Datenbank gespeicherten Server, nicht das ungespeicherte Formular. Eine im Formular abgeschaltete Zertifikatspruefung oder ein neu eingetipptes Token-Geheimnis wurden dadurch beim Test ignoriert und erst nach "Speichern" wirksam — eine Falle fuer genau den Ablauf, den Nutzer instinktiv waehlen (eintippen, testen, dann erst speichern). Neues `TestProxmoxServerDto` plus Merge-Baustein `resolveEffectiveTestServer` in `ProxmoxService`: normale Felder folgen dem Formular (auch wenn absichtlich geleert), Geheimnisfelder folgen der bestehenden "leer -> gespeicherten Wert behalten"-Regel, weil `ServerForm` sie beim Laden nie aus der Datenbank vorbefuellt. Neue Route `POST servers/test` (ohne `:id`) deckt die Neuanlage ab, wo es noch keinen gespeicherten Server gibt. Der Testen-Knopf steht jetzt immer zur Verfuegung, nicht mehr nur nach dem ersten Speichern. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -193,11 +193,41 @@ export async function pollServer(id: string): Promise<ProxmoxTestResult> {
|
||||
return res.json();
|
||||
}
|
||||
|
||||
/** POST /modules/proxmox/servers/:id/test — Verbindungstest, schreibt NICHT ins Zwischenlager. */
|
||||
export async function testServer(id: string): Promise<ProxmoxTestResult> {
|
||||
/**
|
||||
* POST /modules/proxmox/servers/:id/test — Verbindungstest fuer einen
|
||||
* gespeicherten Server, schreibt NICHT ins Zwischenlager. `payload` traegt
|
||||
* den aktuellen Formularstand (Nachbesserung Befund 1): der Test prueft
|
||||
* damit, was im Formular steht, statt blind den gespeicherten Stand — ein
|
||||
* leer gelassenes Geheimnisfeld (`tokenSecret`/`password: undefined`) laesst
|
||||
* den Server serverseitig auf den gespeicherten Wert zurueckfallen.
|
||||
*/
|
||||
export async function testServer(
|
||||
id: string,
|
||||
payload: UpdateProxmoxServerPayload,
|
||||
): Promise<ProxmoxTestResult> {
|
||||
const res = await fetch(`${API_URL}/modules/proxmox/servers/${id}/test`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
credentials: 'include',
|
||||
body: JSON.stringify(payload),
|
||||
});
|
||||
if (!res.ok) throw new Error(await readErrorMessage(res, 'Failed to test proxmox server'));
|
||||
return res.json();
|
||||
}
|
||||
|
||||
/**
|
||||
* POST /modules/proxmox/servers/test — Verbindungstest waehrend der
|
||||
* Neuanlage (Nachbesserung Befund 1): es gibt noch keinen gespeicherten
|
||||
* Server, `payload` ist deshalb die einzige Quelle.
|
||||
*/
|
||||
export async function testDraftServer(
|
||||
payload: UpdateProxmoxServerPayload,
|
||||
): Promise<ProxmoxTestResult> {
|
||||
const res = await fetch(`${API_URL}/modules/proxmox/servers/test`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
credentials: 'include',
|
||||
body: JSON.stringify(payload),
|
||||
});
|
||||
if (!res.ok) throw new Error(await readErrorMessage(res, 'Failed to test proxmox server'));
|
||||
return res.json();
|
||||
|
||||
Reference in New Issue
Block a user