pdf-quiz-generator/backend/tests
Daniel 8f73e0f75b fix: one analysis layout, and an unsat session is the same page at zero
Two bugs, one visible cause. `.an-page`, `.an-rail` and four more classes
were defined in both AnalysisPage.css and AnalysisSessionPage.css with
different values — one a 280px grid, the other 260px. Once the two pages
shared a rail both stylesheets loaded together, the later won, and the
content column collapsed to rail width: "General Pediatrics" wrapped one
letter per line and the table headers floated away from their rows.

AnalysisShell now owns the frame and the session list for both views.
The page stylesheets style their content and nothing else.

And a session nobody has sat is no longer a bespoke "nothing here" panel.
GET /attempts/quiz/{id}/analysis answers with the same shape at zero —
0%, 0/20, every row "skipped" — so it is visibly the same page the
learner will see filled in, with a line saying why the figures are zero
and Start below. A part-finished session says how many are outstanding
and offers Resume. Once an attempt exists the quiz address returns the
real analysis, so both ways in reach the same page.

Mobile: below 1000px the rail becomes a band above the content that
starts closed — on a phone the first thing on screen should be the
analysis asked for. Search field is 16px on touch so iOS does not zoom
the page in and refuse to zoom back out; rail rows are 44px targets.

Backend 226/226, frontend 265/265.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TqXevQJhxFrM7jJg82cgZN
2026-09-11 05:08:56 +02:00
..
__init__.py Initial commit: PDF Quiz Generator app 2026-03-30 20:04:53 +00:00
test_ai_mode.py fix: a model call with no timeout, and tests that measured Redis 2026-09-10 22:02:50 +02:00
test_ai_mode_matching.py feat: exams as real data, AI-mode matching, and a continue-study panel 2026-09-10 02:08:38 +02:00
test_articles_cards.py feat: edit every view and its sources, with a way back to any earlier save 2026-09-10 18:27:52 +02:00
test_articles_migration.py feat: linked topic articles and card associations 2026-09-07 15:16:48 +02:00
test_bank_cleanup.py fix: MinIO name collision, and refuse to write an article from fragments 2026-09-10 17:31:53 +02:00
test_category_grants.py feat: analysis recommendations, category grants, compact question header 2026-09-09 18:47:32 +02:00
test_category_migration.py fix: close custom-test review gaps and verify grading 2026-09-07 02:07:58 +02:00
test_comments_ai.py fix: refine uses existing article content and validate AI section IDs 2026-09-07 17:44:15 +02:00
test_exam_scoped_tags.py feat: real organ systems, symptoms grouped by system, and admin taxonomy CRUD 2026-09-10 10:44:39 +02:00
test_exams.py feat: exams as real data, AI-mode matching, and a continue-study panel 2026-09-10 02:08:38 +02:00
test_global_search.py feat: one search across reading, questions, cards and images 2026-09-10 11:59:58 +02:00
test_hybrid_search.py feat: media as a searchable corpus, ready for a vision embedder 2026-09-10 02:22:52 +02:00
test_login_without_turnstile.py fix: remove Turnstile from quiz password login 2026-09-07 02:54:12 +02:00
test_media_library.py feat: real organ systems, symptoms grouped by system, and admin taxonomy CRUD 2026-09-10 10:44:39 +02:00
test_multi_category.py feat: key points smart links, difficulty tags, adaptive sessions, educator-only question management 2026-09-09 02:26:45 +02:00
test_option_explanations.py feat: key points smart links, difficulty tags, adaptive sessions, educator-only question management 2026-09-09 02:26:45 +02:00
test_question_versions.py feat: question version history with restore; TODO list 2026-09-10 02:27:44 +02:00
test_quiz_builder.py feat: an exam that runs out is a result; delete and reset go all the way down 2026-09-11 04:47:11 +02:00
test_quiz_sessions.py feat: analysis recommendations, category grants, compact question header 2026-09-09 18:47:32 +02:00
test_related_privacy.py feat: key points smart links, difficulty tags, adaptive sessions, educator-only question management 2026-09-09 02:26:45 +02:00
test_session_lifecycle.py fix: one analysis layout, and an unsat session is the same page at zero 2026-09-11 05:08:56 +02:00
test_share_public.py feat: shareable quiz links, moderated comments and AI authoring 2026-09-07 17:10:08 +02:00
test_shared_category.py feat: flashcard decks share the question and article category tree 2026-09-10 01:40:03 +02:00
test_study_plan_editing.py feat: study plans you can open, work through, and edit 2026-09-10 12:10:39 +02:00
test_study_plan_sessions.py feat: study-plan blocks as modules, sessions that know their block 2026-09-11 04:31:21 +02:00
test_study_tools.py feat: key points smart links, difficulty tags, adaptive sessions, educator-only question management 2026-09-09 02:26:45 +02:00
test_study_tools_migration.py fix: preserve saved quiz progress across resume failures 2026-09-07 03:34:55 +02:00
test_tag_hierarchy.py feat: real organ systems, symptoms grouped by system, and admin taxonomy CRUD 2026-09-10 10:44:39 +02:00