/
afanasevn
/
PdfEncoder
Обзор
Документация
Войти
/
afanasevn
/
PdfEncoder
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
scripts/test-parse.ps1
38 строк
1 KB
IBS\NAfanasev
Full async product flow
01 июл 2026, 17:49
01 июл 2026, 17:49
d25833e
Код
Авторство
О чём код?
# E2E smoke: upload PDF => polling => result. # Требует запущенный API (http://localhost:5183) и PostgreSQL. # Запуск: .\scripts\test-parse.ps1 $ErrorActionPreference = "Stop" $repoRoot = Split-Path -Parent $PSScriptRoot $pdfPath = Join-Path $repoRoot "samples\demo-invoice.pdf" $apiBase = "http://localhost:5183" if (-not (Test-Path $pdfPath)) { throw "Файл не найден: $pdfPath" } Write-Host "Upload $pdfPath ..." $form = @{ file = Get-Item $pdfPath documentType = "auto" language = "ru" async = "true" } $response = Invoke-RestMethod -Uri "$apiBase/api/documents/parse" -Method POST -Form $form $documentId = $response.documentId Write-Host "Job created: $documentId status=$($response.status)" $deadline = (Get-Date).AddMinutes(3) while ((Get-Date) -lt $deadline) { Start-Sleep -Seconds 2 $job = Invoke-RestMethod -Uri "$apiBase/api/documents/$documentId" -Method GET Write-Host "Polling: $($job.status)" if ($job.status -in @("Completed", "Failed")) { $job | ConvertTo-Json -Depth 8 if ($job.status -eq "Failed") { exit 1 } exit 0 } } throw "Timeout waiting for job $documentId"