@@ -252,8 +252,8 @@ function script:Invoke-SauceLabsApp {
252252 $logResponse = Invoke-SauceLabsApi - Method POST - Uri " $baseUri /log" - Body $logBody
253253
254254 if ($logResponse.value -and $logResponse.value.Count -gt $script :LogLineCount ) {
255- $newLogs = $logResponse.value | Select-Object - Skip $script :LogLineCount
256- $logMessages = $newLogs | ForEach-Object { $_.message }
255+ $newLogs = @ ( $logResponse.value | Select-Object - Skip $script :LogLineCount )
256+ $logMessages = @ ( $newLogs | ForEach-Object { $_.message })
257257
258258 # Check for completion markers
259259 if (($logMessages | Where-Object { $_ -match " TEST_RESULT:" }) -or
@@ -281,17 +281,33 @@ function script:Invoke-SauceLabsApp {
281281
282282 # Extract new log lines (delta)
283283 [array ]$allLogs = @ ()
284- if ($logResponse.value ) {
285- $allLogs = $logResponse.value | Select-Object - Skip $script :LogLineCount
286- $script :LogLineCount = $logResponse.value.Count
284+ if ($logResponse.value -and $logResponse.value.Count -gt 0 ) {
285+ $totalLogCount = $logResponse.value.Count
286+ Write-Debug " Total logs in response: $totalLogCount , Previously read: $script :LogLineCount "
287+
288+ if ($totalLogCount -gt $script :LogLineCount ) {
289+ # Get only new logs (skip previously read lines)
290+ $allLogs = @ ($logResponse.value | Select-Object - Skip $script :LogLineCount )
291+ Write-Host " Retrieved $ ( $allLogs.Count ) new log lines" - ForegroundColor Cyan
292+ } else {
293+ Write-Host " No new log lines since last read" - ForegroundColor Yellow
294+ }
295+
296+ # Update counter for next read
297+ $script :LogLineCount = $totalLogCount
298+ } else {
299+ Write-Host " No logs available in response" - ForegroundColor Yellow
287300 }
288301
289302 # Convert SauceLabs log format to text (matching adb output)
290- $logCache = $allLogs | ForEach-Object {
291- $timestamp = if ($_.timestamp ) { $_.timestamp } else { " " }
292- $level = if ($_.level ) { $_.level } else { " " }
293- $message = if ($_.message ) { $_.message } else { " " }
294- " $timestamp $level $message "
303+ $logCache = @ ()
304+ if ($allLogs -and $allLogs.Count -gt 0 ) {
305+ $logCache = $allLogs | ForEach-Object {
306+ $timestamp = if ($_.timestamp ) { $_.timestamp } else { " " }
307+ $level = if ($_.level ) { $_.level } else { " " }
308+ $message = if ($_.message ) { $_.message } else { " " }
309+ " $timestamp $level $message "
310+ }
295311 }
296312
297313 # Save logs to file if OutputDir specified
0 commit comments