2.4 KiB
2.4 KiB
Issues Discovered - 2026-05-04
This document summarizes the issues found during the Playwright exploration session on 2026-05-04.
1. JSON Parse Error when adding Tutors to Courses
- Location:
frontend/src/routes/admin/courses/+page.svelte(triggered byapi.admin.courses.addTutor) - Symptoms: Alert box shows
SyntaxError: Failed to execute 'json' on 'Response': Unexpected end of JSON input. - Root Cause: The backend
POST /api/admin/courses/:id/tutorshandler likely returns a200 OKwith an empty body. The frontendapi.tswrapper attempts to call.json()on every response, which fails on empty bodies. - Evidence: Network request #48 in Playwright session showed
status: 200butcontent-length: 0.
2. Attendance Count Missing on Student Check-in Page
- Location:
frontend/src/routes/s/[code]/+page.svelte - Symptoms: The "Anwesende" count shows
0 / 11even after a successful check-in or when other students are present. - Root Cause: The
loadInfofunction fetches the data but never assignsres.attendancesto the localattendancesstate variable. - Evidence:
loadInfocontainsconst checkinAttendances = res.attendances ?? [];but lacksattendances = checkinAttendances;.
3. Seat Map Empty in Live View
- Location:
frontend/src/routes/admin/live/[slotId]/+page.svelte - Symptoms: All seats show as "frei" in the tutor's live view, even when students are checked in and assigned to seats.
- Root Cause: The
SeatMapcomponent is instantiated without passingassignmentsorstudentsprops. - Evidence:
<SeatMap variant="tutor" scale={0.78} />is used without other props in the source code.
4. Room Editor Element Selection Broken
- Location:
frontend/src/lib/RoomCanvas.svelte - Symptoms: Clicking an element in the Room Layout Editor does not select it (sidebar continues to show "Element auswählen").
- Root Cause: In
handleMouseDown, ifeditableis true, the function returns early without callingonElementClick. - Evidence:
function handleMouseDown(e: MouseEvent, el: LayoutElement) { if (!editable) { onElementClick?.(el); return; } draggingId = el.id; // ... }
5. Potential UI/UX: Dashboard Slot Status
- Observation: Dashboard sometimes shows "Anwesenheit offen" but "Alle Slots 1" and "Abgeschlossene Slots 0". It's a bit confusing if there is only one slot ever. (Minor)