← Danh sách kịch bản L4 · Tổng quan

pt-redeem-reward

Target: web-portal | Khổ màn hình: 1440×900 | Đồng hồ đóng băng: 2026-08-02T09:00:00 | TZ: Europe/Berlin

Steps: 5 | Có Expected: 5 | Thiếu Expected: 0

#StepMàn hìnhTổngExpected
1mở danh mục đổi thưởngportal:rewards—✅
2bấm vào một phần thưởng thiếu điểmportal:rewards—✅
3bấm Redeem món đủ điểmportal:rewards—✅
4xác nhận đổiportal:rewards—✅
5quay lại danh mụcportal:rewards—✅

pt-redeem-reward Step 1 · mở danh mục đổi thưởng

🎯 Expected: Hiện đủ 6 phần thưởng. 3 món vượt quá số điểm hiện có và đang bị khoá (không có nút Redeem).

step 1

Cổng thành viên

TrườngGiá trị
TênMary Pham
HạngGold Member
Điểm1240
Khung nhìnportal:rewards
Số voucher1

pt-redeem-reward Step 2 · bấm vào một phần thưởng thiếu điểm

🎯 Expected: Không có gì xảy ra: thẻ khoá không mang nút Redeem nào (chỗ đó là dòng "còn thiếu bao nhiêu điểm"), nên lớp phủ xác nhận KHÔNG mở và số điểm không đổi.

step 2

Cổng thành viên

TrườngGiá trị
TênMary Pham
HạngGold Member
Điểm1240
Khung nhìnportal:rewards
Số voucher1

pt-redeem-reward Step 3 · bấm Redeem món đủ điểm

🎯 Expected: Modal xác nhận mở, nêu chi phí 600 điểm và số dư còn lại sau khi đổi là 640.

step 3

Cổng thành viên

TrườngGiá trị
TênMary Pham
HạngGold Member
Điểm1240
Khung nhìnportal:rewards
Số voucher1

Lớp phủ đang mở: rdOv

pt-redeem-reward Step 4 · xác nhận đổi

🎯 Expected: Trừ đúng 600 điểm (còn 640), sinh voucher mới trong ví và mở QR của voucher vừa tạo.

step 4

Cổng thành viên

TrườngGiá trị
TênMary Pham
HạngGold Member
Điểm640
Khung nhìnportal:rewards
Số voucher2

Lớp phủ đang mở: qrOv

pt-redeem-reward Step 5 · quay lại danh mục

🎯 Expected: Sau khi tiêu điểm, số món bị khoá là 5 — nhiều hơn hoặc bằng lúc đầu.

step 5

Cổng thành viên

TrườngGiá trị
TênMary Pham
HạngGold Member
Điểm640
Khung nhìnportal:rewards
Số voucher2

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.