Timetable Engine — Test Checklist (Ticket #163)
This checklist documents the manual test steps for the Timetable Engine and session workflow. Use it when verifying new timetable changes.
1. Create a timetable
- Click + New Timetable
- Select a class
- Select an Academic Period → dates should auto-fill from the period
- Adjust dates if needed (Valid From / Valid Until)
- Add a weekly slot: pick a day (e.g. Mon), set
09:00 → 11:00 - Click + Add slot to add a second slot on a different day
- Click Create Timetable → should appear in the left list with
draftstatus
2. Generate sessions
- With the timetable selected, click ⚡ Generate Sessions
- Alert should say "Generated N sessions" — verify N is a sensible number for the date range
- Sessions list populates, all showing
scheduledbadge (sky blue)
3. Mark as Held (new in this commit)
- Hover over any
scheduledsession → a Held button appears on the right - Click it → status badge immediately changes to
held(green) — no modal, 1 click
4. Edit a session manually
- Hover over a session → click Edit
- Change status to
cancelled→ a Reason field should appear below - Type a reason (e.g. "teacher absent")
- Save → session shows
cancelledwith strikethrough style and the reason text
5. Add a makeup session (new in this commit)
- Click + Makeup (amber button, top-right of sessions panel)
- Amber form expands: fill in a date,
09:00,11:00, optional notes - Click Add Makeup → new session appears in list with amber
makeupbadge - Filter dropdown → select "Makeup" → only that session shows
6. Edit an existing slot
- In the Weekly Pattern section, click the ✎ pencil icon on a slot chip
- Change the time inline (e.g.
10:00 → 12:00) - Click ✓ → hint appears: "Slot edited — click ↻ Re-sync Sessions to apply changes"
- Click ↻ Re-sync Sessions → session times update
7. Add a slot post-creation
- Click + Add slot in the Weekly Pattern header
- Pick a new day/time → click Add → new chip appears
8. Duplicate a timetable
- With timetable selected, click Duplicate
- Modal opens — slots and dates are pre-filled, class is empty
- Select a different class → click Create Timetable → second timetable appears in list
Notes: - This checklist is intended for the QA team and release engineers validating the timetable changes. It assumes default campus reporting rules and active academic periods are present. - For automation, these steps can be converted into Playwright flows using the Timetable UI selectors.
Last updated: 2026-07-08