lernschiff/tests
Boban Blaskovic 88945b47f6 feat(tasks): multi-type questions (cloze + geo-map) + Run.php type dispatch
Tasks Run page now switches on question $type and renders one of three layouts:
choice (existing multiple-choice), cloze (Lückentext text input), geo-map
(clickable SVG region picker). Adds Deutsch-Lückentexte + Geografie-Europa
question banks with the required type-specific keys.

- Run.php: replaces submitAnswer/lastAnswerIndex with submitChoice + submitCloze
  + submitRegion. lastAnswer is now an array { type, ...payload }. Cross-type
  calls are no-ops so a stray dispatch can't pollute state.
- run.blade.php: branches on $q['type']; cloze has wire:model.live debounce
  + Enter-to-submit; geo-map has SVG + accessible label-button grid; feedback
  pill below each layout.
- config/tasks.php: adds deutsch-lueckentexte + geografie-europa-laender.
- config/task-questions.php: type=cloze entries with correct+accept[] for
  case-insensitive alt-spelling match; type=geo-map entries with regions[]
  and SVG paths.
- Tests: renames submitAnswer→submitChoice across run page suite; adds full
  coverage for cloze (correct/wrong/empty/case/accept[]/payload shape/clear
  on next), geo-map (correct/wrong/payload/SVG render), and cross-type
  guards. TaskQuestionBank test is now type-aware (choice needs options[4],
  cloze needs correct string, geo-map needs regions[]+matching correct key).

Test: 204/204 Pest green. Smoke: 10/10 task routes 200, 4/4 modal components
mount cleanly, no errors written to laravel.log during the smoke pass.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 19:28:09 +02:00
..
Browser feat(testing): Pest v3 + Dusk + phpunit.xml.dist SESSION overrides + laravel/reverb 2026-05-22 00:32:10 +02:00
Feature feat(tasks): multi-type questions (cloze + geo-map) + Run.php type dispatch 2026-05-23 19:28:09 +02:00
Unit feat(auth): Breeze Livewire stack + dashboard/lizenz-abgelaufen views + layout shells 2026-05-22 05:55:59 +02:00
DuskTestCase.php feat(testing): Pest v3 + Dusk + phpunit.xml.dist SESSION overrides + laravel/reverb 2026-05-22 00:32:10 +02:00
Pest.php feat(ui): dashboard MVP — feature-folders, lazy skeletons, wire-elements modals, brand logos 2026-05-22 21:36:04 +02:00
TestCase.php feat(ui): dashboard MVP — feature-folders, lazy skeletons, wire-elements modals, brand logos 2026-05-22 21:36:04 +02:00