← Danh sách kịch bản L4 · Tổng quan
wb-booking-happy-path
Target: web-popup | Khổ màn hình: 1440×900 | Đồng hồ đóng băng: 2026-08-02T09:00:00 | TZ: Europe/Berlin
Steps: 8 | Có Expected: 8 | Thiếu Expected: 0
| # | Step | Màn hình | Tổng | Expected |
|---|---|---|---|---|
| 1 | trang chủ | landing | 0.00 | ✅ |
| 2 | mở popup | wizard:client | 0.00 | ✅ |
| 3 | bấm Next khi trống | wizard:client | 0.00 | ✅ |
| 4 | điền đủ rồi Next | wizard:services | 0.00 | ✅ |
| 5 | chọn một dịch vụ | wizard:services | 5.00 | ✅ |
| 6 | sang bước xem lại | wizard:review | 5.00 | ✅ |
| 7 | nhập ghi chú | wizard:review | 5.00 | ✅ |
| 8 | xác nhận đặt lịch | wizard:success | 5.00 | ✅ |
wb-booking-happy-path Step 1 · trang chủ
🎯 Expected: Trang giới thiệu hiện nút Book Appointment, chưa có popup nào mở.
Panels
Đơn đặt
| Trường | Giá trị |
|---|---|
| Màn hình | landing |
| Tổng tiền | 0.00 |
| Số add-on | 0 |
Thành viên
| Đăng nhập | Chip |
|---|---|
| — | — |
wb-booking-happy-path Step 2 · mở popup
🎯 Expected: Popup New Booking mở ở bước 1, có đủ ô tên, số điện thoại, email, ngày, giờ và số khách.
Panels
Đơn đặt
| Trường | Giá trị |
|---|---|
| Tên | |
| SĐT | |
| Ngày | 2026-08-02 |
| Giờ | |
| Số khách | 1 |
| Trường | Giá trị |
|---|---|
| Màn hình | wizard:client |
| Tổng tiền | 0.00 |
| Số add-on | 0 |
Thành viên
| Đăng nhập | Chip |
|---|---|
| — | — |
wb-booking-happy-path Step 3 · bấm Next khi trống
🎯 Expected: Vẫn ở bước 1. Các ô bắt buộc còn trống được đánh dấu lỗi cùng lúc, không dừng ở ô đầu tiên.
Panels
Đơn đặt
| Trường | Giá trị |
|---|---|
| Tên | |
| SĐT | |
| Ngày | 2026-08-02 |
| Giờ | |
| Số khách | 1 |
| Trường | Giá trị |
|---|---|
| Màn hình | wizard:client |
| Tổng tiền | 0.00 |
| Số add-on | 0 |
Thành viên
| Đăng nhập | Chip |
|---|---|
| — | — |
wb-booking-happy-path Step 4 · điền đủ rồi Next
🎯 Expected: Sang bước 2: hiện ô tìm kiếm, dải danh mục và danh sách dịch vụ. Nút Next của bước 2 đang khoá vì giỏ rỗng.
Panels
Đơn đặt
| Trường | Giá trị |
|---|---|
| Màn hình | wizard:services |
| Tổng tiền | 0.00 |
| Số add-on | 0 |
Thành viên
| Đăng nhập | Chip |
|---|---|
| — | — |
wb-booking-happy-path Step 5 · chọn một dịch vụ
🎯 Expected: Giỏ có đúng 1 dịch vụ "French Tip". Nút của dịch vụ đó đổi từ Add sang Remove, nút Next mở khoá.
Panels
Đơn đặt
| Mục trong giỏ |
|---|
| French Tip$5.00+ · 15 min Add add-ons |
| Trường | Giá trị |
|---|---|
| Màn hình | wizard:services |
| Tổng tiền | 5.00 |
| Số add-on | 0 |
Thành viên
| Đăng nhập | Chip |
|---|---|
| — | — |
wb-booking-happy-path Step 6 · sang bước xem lại
🎯 Expected: Bước 3 hiện danh sách đã chọn, tổng tiền và ô ghi chú.
Panels
Đơn đặt
| Mục trong giỏ |
|---|
| 1 French Tip AnyTracy NguyenMia HoJenna LeKevin PhamAnna TranLane Vu $5.00 15 mi |
| Trường | Giá trị |
|---|---|
| Màn hình | wizard:review |
| Tổng tiền | 5.00 |
| Số add-on | 0 |
Thành viên
| Đăng nhập | Chip |
|---|---|
| — | — |
wb-booking-happy-path Step 7 · nhập ghi chú
🎯 Expected: Ghi chú tiếng Việt có dấu giữ nguyên trong ô, không vỡ mã.
Panels
Đơn đặt
| Mục trong giỏ |
|---|
| 1 French Tip AnyTracy NguyenMia HoJenna LeKevin PhamAnna TranLane Vu $5.00 15 mi |
| Trường | Giá trị |
|---|---|
| Màn hình | wizard:review |
| Tổng tiền | 5.00 |
| Số add-on | 0 |
Thành viên
| Đăng nhập | Chip |
|---|---|
| — | — |
wb-booking-happy-path Step 8 · xác nhận đặt lịch
🎯 Expected: Màn hình chuyển sang Booking Confirmed, kèm gợi ý số điểm khách lẽ ra nhận được và nút tham gia Sona Rewards.
Panels
Đơn đặt
| Trường | Giá trị |
|---|---|
| Màn hình | wizard:success |
| Tổng tiền | 5.00 |
| Số add-on | 0 |
Thành viên
| Đăng nhập | Chip |
|---|---|
| — | — |
Hướng dẫn cho LLM review
Với mỗi step: đọc Expected, đối chiếu với ảnh và bảng Panels, rồi trả lời
KHỚP hoặc LỆCH. Nếu LỆCH, chỉ rõ phần nào của Expected không thấy.
Giới hạn đã biết của ảnh L4: test chạy trong jsdom, không có layout engine, nên mọi vị trí do app tự tính từ kích thước đo được sẽ không đúng. Ảnh này do Chromium dựng lại TỪ DOM dump ở bước sau, nên bố cục CSS tĩnh thì đúng, còn thứ phụ thuộc đo đạc lúc chạy thì không. Đừng báo LỆCH vì lý do bố cục — chỉ xét nội dung, text, trạng thái và sự hiện diện của phần tử.
Font chữ trong ảnh khác bản thật: <link> Google Fonts bị gỡ khi nạp trang để test không đi ra mạng, nên chữ rơi về serif hệ thống. Đây không phải lỗi.







