openreader/tests/unit
Richard R 62c913e96d feat(pdf): refactor parse operation orchestration and client readiness flow
Introduce startPdfParseOperation to encapsulate worker operation creation, job rate tracking, and parse state initialization for PDFs. Replace scattered operation setup logic in register-upload, docx-to-pdf upload, and parse-state-backfill with this unified helper. Update job enqueuing to propagate initial opId/jobId/status for accurate state tracking.

Change getParsedPdfDocument to throw on non-ready states and remove polling logic from usePdfDocument, shifting readiness detection to event streams. Switch API responses for non-ready parses from 202 to 409 to clarify client expectations and simplify error handling.

Add targeted tests to verify legacy backfill behavior and ensure no worker operation is created for pure data fetches of pending legacy PDFs.

BREAKING CHANGE: API now returns 409 Conflict for non-ready parsed PDFs instead of 202, and clients must subscribe to event streams for parse progress.
2026-06-04 10:52:49 -06:00
..
support test(unit): migrate batch2 document and parser suites to vitest 2026-05-30 11:15:19 -06:00
admin-providers-validation.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
admin-tts-instructions.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
audiobook-settings.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
audiobook.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
audiobooks-blobstore.vitest.spec.ts refactor(core): improve streaming, validation, and rate limit logic 2026-05-30 16:41:17 -06:00
auth-config.vitest.spec.ts refactor(env): remove legacy no-auth mode and enforce required auth env vars 2026-05-31 12:09:37 -06:00
canonicalize-epub-segment.vitest.spec.ts test(unit): migrate batch2 document and parser suites to vitest 2026-05-30 11:15:19 -06:00
changelog-check.vitest.spec.ts refactor(api): remove all legacy unclaimed user scope logic and enforce strict userId scoping 2026-05-31 13:01:55 -06:00
changelog.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
docstore.vitest.spec.ts test(unit): migrate batch2 document and parser suites to vitest 2026-05-30 11:15:19 -06:00
document-cache.vitest.spec.ts test(unit): migrate batch2 document and parser suites to vitest 2026-05-30 11:15:19 -06:00
document-previews-render.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
epub-audiobook-hook.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
epub-location-controller.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
epub-spine-coordinates.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
epub-word-highlight.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
html-audiobook-adapter.vitest.spec.ts test(unit): migrate batch2 document and parser suites to vitest 2026-05-30 11:15:19 -06:00
html-blocks.vitest.spec.ts test(unit): migrate batch2 document and parser suites to vitest 2026-05-30 11:15:19 -06:00
icons-grid.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
kokoro.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
layout-metadata.vitest.spec.ts feat(shared): centralize origin validation logic and update metadata usage 2026-05-31 16:41:47 -06:00
legacy-fs-claim-cleanup.vitest.spec.ts feat(user): remove legacy local file deletion and add cleanup for claimed FS sources 2026-06-03 14:35:27 -06:00
nlp.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
onboarding-flow.vitest.spec.ts refactor(api): remove all legacy unclaimed user scope logic and enforce strict userId scoping 2026-05-31 13:01:55 -06:00
onboarding-state.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
pdf-audiobook-adapter.vitest.spec.ts test(unit): migrate batch2 document and parser suites to vitest 2026-05-30 11:15:19 -06:00
pdf-build-page-text.vitest.spec.ts test(unit): migrate batch2 document and parser suites to vitest 2026-05-30 11:15:19 -06:00
pdf-force-reparse.vitest.spec.ts test(unit): migrate batch2 document and parser suites to vitest 2026-05-30 11:15:19 -06:00
pdf-merge-text-with-regions.vitest.spec.ts feat: improve PDF parsing recovery and reader UI (#98) 2026-06-03 04:44:55 -06:00
pdf-op-key.vitest.spec.ts feat(pdf): introduce parser versioning and playback readiness state 2026-06-03 18:51:29 -06:00
pdf-parse-normalize-text-items.vitest.spec.ts feat: improve PDF parsing recovery and reader UI (#98) 2026-06-03 04:44:55 -06:00
pdf-parse-state.vitest.spec.ts feat(pdf): introduce parser versioning and playback readiness state 2026-06-03 18:51:29 -06:00
pdf-parsed-events-route-legacy-backfill.vitest.spec.ts feat(pdf): refactor parse operation orchestration and client readiness flow 2026-06-04 10:52:49 -06:00
pdf-parsed-route-legacy-backfill.vitest.spec.ts feat(pdf): refactor parse operation orchestration and client readiness flow 2026-06-04 10:52:49 -06:00
pdf-stitch-cross-page-blocks.vitest.spec.ts test(unit): migrate batch2 document and parser suites to vitest 2026-05-30 11:15:19 -06:00
pdf-tts-planning.vitest.spec.ts test(unit): migrate batch2 document and parser suites to vitest 2026-05-30 11:15:19 -06:00
rate-limit-runtime-settings.vitest.spec.ts docs(config): update environment variable docs for runtime JSON seed and remove legacy RUNTIME_SEED_* usage 2026-05-31 00:13:03 -06:00
request-ip.vitest.spec.ts feat(rate-limit): add per-user PDF parsing rate limiting and job event ledger 2026-05-30 14:17:49 -06:00
runtime-seed-json.vitest.spec.ts refactor(settings): remove enableDestructiveDeleteActions runtime flag and related UI 2026-06-01 20:38:54 -06:00
server-error-contract.vitest.spec.ts test(unit): migrate batch1 core contracts to vitest 2026-05-30 11:11:44 -06:00
server-error-response.vitest.spec.ts test(unit): migrate batch1 core contracts to vitest 2026-05-30 11:11:44 -06:00
server-route-error-mappings.vitest.spec.ts test(unit): migrate batch1 core contracts to vitest 2026-05-30 11:11:44 -06:00
setup-env.ts refactor(env): remove legacy no-auth mode and enforce required auth env vars 2026-05-31 12:09:37 -06:00
sha256.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
shared-provider-selection.vitest.spec.ts test(unit): migrate batch1 core contracts to vitest 2026-05-30 11:11:44 -06:00
signup-policy.vitest.spec.ts docs(config): update environment variable docs for runtime JSON seed and remove legacy RUNTIME_SEED_* usage 2026-05-31 00:13:03 -06:00
test-namespace-gate.vitest.spec.ts feat(rate-limit): add per-user PDF parsing rate limiting and job event ledger 2026-05-30 14:17:49 -06:00
transfer-user-documents.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
tts-audio-warm-cache.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
tts-epub-handoff.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
tts-epub-preload.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
tts-generate.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
tts-locator.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
tts-provider-catalog.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
tts-segment-audio-urls.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
tts-segment-plan-leading.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
tts-segment-plan.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
tts-segment-retry-policy.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
tts-segments-audio-cache.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
tts-segments-manifest.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
tts-segments.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
tts-settings-admin-view-model.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
walker-theme.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
whisper-alignment-mapping.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
whisper-spectral.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
whisper-token-timestamps.vitest.spec.ts test(unit): complete vitest migration for remaining unit suites 2026-05-30 11:17:18 -06:00
worker-parse-state.vitest.spec.ts feat(pdf): introduce parser versioning and playback readiness state 2026-06-03 18:51:29 -06:00