style: run-integration-tests.ps1 Formatierung angleichen
This commit is contained in:
parent
6bed1214c5
commit
8576fffdb7
1 changed files with 62 additions and 39 deletions
|
|
@ -67,7 +67,8 @@ function Invoke-Api {
|
|||
-Headers $headers `
|
||||
-ErrorAction Stop
|
||||
return $response
|
||||
} catch {
|
||||
}
|
||||
catch {
|
||||
$status = $_.Exception.Response.StatusCode.value__
|
||||
throw "HTTP $status bei $Method $Path"
|
||||
}
|
||||
|
|
@ -106,7 +107,8 @@ function Receive-WsMessages([System.Net.WebSockets.ClientWebSocket]$ws, [int]$wa
|
|||
$text = [System.Text.Encoding]::UTF8.GetString($buffer, 0, $result.Count)
|
||||
try { $messages += $text | ConvertFrom-Json } catch { }
|
||||
}
|
||||
} catch {
|
||||
}
|
||||
catch {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
|
@ -129,19 +131,22 @@ $bobTokens = $null
|
|||
try {
|
||||
$aliceTokens = Invoke-Api -Method POST -Path "/api/auth/login" -Body @{ username = $AliceUser; password = $AlicePassword }
|
||||
Pass "Auth: Alice login (userId=$($aliceTokens.userId))"
|
||||
} catch { Fail "Auth: Alice login - $_" }
|
||||
}
|
||||
catch { Fail "Auth: Alice login - $_" }
|
||||
|
||||
try {
|
||||
$bobTokens = Invoke-Api -Method POST -Path "/api/auth/login" -Body @{ username = $BobUser; password = $BobPassword }
|
||||
Pass "Auth: Bob login (userId=$($bobTokens.userId))"
|
||||
} catch { Fail "Auth: Bob login - $_" }
|
||||
}
|
||||
catch { Fail "Auth: Bob login - $_" }
|
||||
|
||||
# Geschuetzten Endpoint mit Token aufrufen
|
||||
if ($aliceTokens) {
|
||||
try {
|
||||
$inv = Invoke-Api -Method GET -Path "/api/inventory" -Token $aliceTokens.accessToken
|
||||
Pass "Auth: Alice-Token fuer geschuetzten Endpoint gueltig"
|
||||
} catch { Fail "Auth: Alice-Token ungueltig - $_" }
|
||||
}
|
||||
catch { Fail "Auth: Alice-Token ungueltig - $_" }
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
|
@ -174,17 +179,20 @@ if ($aliceTokens) {
|
|||
try {
|
||||
$uploaded = Invoke-Api -Method PUT -Path "/api/inventory" -Body $testInventory -Token $aliceTokens.accessToken
|
||||
Pass "Inventory Sync: Alice laedt Inventar hoch ($($uploaded.items.Count) Item(s))"
|
||||
} catch { Fail "Inventory Sync: Upload fehlgeschlagen - $_" }
|
||||
}
|
||||
catch { Fail "Inventory Sync: Upload fehlgeschlagen - $_" }
|
||||
|
||||
try {
|
||||
$fetched = Invoke-Api -Method GET -Path "/api/inventory" -Token $aliceTokens.accessToken
|
||||
$item = $fetched.items | Where-Object { $_.id -eq $itemId }
|
||||
if ($item -and $item.name -eq "Testkonserve" -and $item.quantity -eq 12.0) {
|
||||
Pass "Inventory Sync: Abgerufenes Inventar konsistent (name=$($item.name), qty=$($item.quantity))"
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
Fail "Inventory Sync: Abgerufenes Item stimmt nicht ueberein"
|
||||
}
|
||||
} catch { Fail "Inventory Sync: GET fehlgeschlagen - $_" }
|
||||
}
|
||||
catch { Fail "Inventory Sync: GET fehlgeschlagen - $_" }
|
||||
|
||||
# PATCH eines einzelnen Items
|
||||
try {
|
||||
|
|
@ -199,10 +207,12 @@ if ($aliceTokens) {
|
|||
$patched = $fetched2.items | Where-Object { $_.id -eq $itemId }
|
||||
if ($patched -and $patched.quantity -eq 24.0) {
|
||||
Pass "Inventory Sync: PATCH item erfolgreich (qty=$($patched.quantity))"
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
Fail "Inventory Sync: PATCH-Ergebnis nicht korrekt"
|
||||
}
|
||||
} catch { Fail "Inventory Sync: PATCH fehlgeschlagen - $_" }
|
||||
}
|
||||
catch { Fail "Inventory Sync: PATCH fehlgeschlagen - $_" }
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
|
@ -227,7 +237,8 @@ if ($aliceTokens -and $bobTokens) {
|
|||
sentAt = $now + $i
|
||||
}
|
||||
$sentIds += $msg.id
|
||||
} catch {
|
||||
}
|
||||
catch {
|
||||
Fail "Messaging: Alice sendet Nachricht $i - $_"
|
||||
$allSent = $false
|
||||
}
|
||||
|
|
@ -245,10 +256,12 @@ if ($aliceTokens -and $bobTokens) {
|
|||
$newMsgs = $received | Where-Object { $_.type -eq "new_message" }
|
||||
if ($newMsgs.Count -ge 3) {
|
||||
Pass "Messaging: Bob empfaengt $($newMsgs.Count) Nachrichten nach WS-Connect (Offline-Delivery)"
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
Fail "Messaging: Bob empfaengt nur $($newMsgs.Count)/3 Nachrichten (erwartet 3)"
|
||||
}
|
||||
} catch { Fail "Messaging: Bob WebSocket - $_" }
|
||||
}
|
||||
catch { Fail "Messaging: Bob WebSocket - $_" }
|
||||
|
||||
# Bob antwortet 2 Nachrichten (Alice ist jetzt offline)
|
||||
$replySent = $true
|
||||
|
|
@ -259,7 +272,8 @@ if ($aliceTokens -and $bobTokens) {
|
|||
body = "Antwort $i von Bob"
|
||||
sentAt = $now + 100 + $i
|
||||
} | Out-Null
|
||||
} catch {
|
||||
}
|
||||
catch {
|
||||
Fail "Messaging: Bob sendet Antwort $i - $_"
|
||||
$replySent = $false
|
||||
}
|
||||
|
|
@ -276,20 +290,24 @@ if ($aliceTokens -and $bobTokens) {
|
|||
$aliceMsgs = $aliceReceived | Where-Object { $_.type -eq "new_message" }
|
||||
if ($aliceMsgs.Count -ge 2) {
|
||||
Pass "Messaging: Alice empfaengt $($aliceMsgs.Count) Offline-Nachrichten von Bob nach Reconnect"
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
Fail "Messaging: Alice empfaengt nur $($aliceMsgs.Count)/2 Nachrichten (erwartet 2)"
|
||||
}
|
||||
} catch { Fail "Messaging: Alice WebSocket Reconnect - $_" }
|
||||
}
|
||||
catch { Fail "Messaging: Alice WebSocket Reconnect - $_" }
|
||||
|
||||
# Konversations-Verlauf per HTTP
|
||||
try {
|
||||
$conv = Invoke-Api -Method GET -Path "/api/messages/$bobId" -Token $aliceTokens.accessToken
|
||||
if ($conv.Count -ge 5) {
|
||||
Pass "Messaging: Konversationsverlauf enthaelt $($conv.Count) Nachrichten"
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
Fail "Messaging: Konversation enthaelt nur $($conv.Count) Nachrichten (erwartet >=5)"
|
||||
}
|
||||
} catch { Fail "Messaging: Konversationsverlauf abruf - $_" }
|
||||
}
|
||||
catch { Fail "Messaging: Konversationsverlauf abruf - $_" }
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
|
@ -305,10 +323,12 @@ if ($aliceTokens) {
|
|||
# Alten Token sollte unbrauchbar sein nicht zwingend pruefbar; neuer Token muss funktionieren
|
||||
$inv = Invoke-Api -Method GET -Path "/api/inventory" -Token $refreshed.accessToken
|
||||
Pass "JWT Refresh: Neuer Access-Token fuer geschuetzten Endpoint gueltig"
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
Fail "JWT Refresh: Kein neuer Token erhalten"
|
||||
}
|
||||
} catch { Fail "JWT Refresh: $_" }
|
||||
}
|
||||
catch { Fail "JWT Refresh: $_" }
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
|
@ -327,7 +347,8 @@ if ($aliceTokens -and $bobTokens) {
|
|||
|
||||
if ($ws1.State -eq "Open" -and $ws2.State -eq "Open") {
|
||||
Pass "Parallele Sessions: Beide Verbindungen geoeffnet"
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
Fail "Parallele Sessions: Nicht beide Verbindungen offen"
|
||||
}
|
||||
|
||||
|
|
@ -358,11 +379,13 @@ if ($aliceTokens -and $bobTokens) {
|
|||
$undeliveredCount = ($pending | Where-Object { $_.type -eq "new_message" }).Count
|
||||
if ($undeliveredCount -eq 0) {
|
||||
Pass "Parallele Sessions: Server hat Alice korrekt als online erkannt - Nachricht als delivered markiert (nicht in Offline-Queue)"
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
Fail "Parallele Sessions: Server hat $undeliveredCount Nachricht(en) als undelivered gespeichert, obwohl Alice online war"
|
||||
}
|
||||
|
||||
} catch { Fail "Parallele Sessions: $_" }
|
||||
}
|
||||
catch { Fail "Parallele Sessions: $_" }
|
||||
finally {
|
||||
if ($ws1) { Close-WebSocket -ws $ws1 }
|
||||
if ($ws2) { Close-WebSocket -ws $ws2 }
|
||||
|
|
|
|||
Loading…
Reference in a new issue