chore: synchronize project dependencies and update vendor directory files

This commit is contained in:
2026-07-15 13:15:05 +07:00
parent 2ab9f65c99
commit 3203c6e129
10000 changed files with 1501312 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
# Kịch Bản Kiểm Thử (Test Script) Hệ Thống Quay Số (S.I.S) - Bản Chi Tiết (V2)
Tài liệu này mô tả các kịch bản kiểm thử (Test Cases) chi tiết bao phủ các trường hợp đúng (Positive) và sai (Negative) cho cả Frontend và Backend.
> [!NOTE]
> **Môi trường Test:**
> - Trình duyệt: Chrome, Firefox, Safari, Edge.
> - URL: `http://localhost/Quayso/` (Frontend), `http://localhost/Quayso/admin` (Backend).
---
## 1. Phân Hệ Người Chơi (Frontend)
### 1.1 Kiểm tra Nhập Lỗi / Không Hợp Lệ (Negative Tests)
Mục tiêu: Đảm bảo hệ thống chặn đứng mọi luồng dữ liệu rác, thiếu, hoặc sai nghiệp vụ.
| ID | Kịch Bản Test | Bước Thực Hiện | Kết Quả Mong Đợi | Trạng Thái |
|:---|:---|:---|:---|:---|
| **TC_F01** | Bỏ sót 1 trường bắt buộc | Điền đầy đủ form, nhưng cố tình xóa trắng ô "Số điện thoại" rồi Submit. | Hệ thống báo lỗi đúng vào trường bị thiếu: "Nhập số điện thoại". | ⬜ |
| **TC_F02** | SĐT chứa chữ cái | Nhập SĐT là `090123abcd`. Submit. | Báo lỗi: "Số điện thoại không đúng định dạng". | ⬜ |
| **TC_F03** | SĐT sai độ dài hoặc đầu số | Nhập SĐT `84901234567` (không có số 0) hoặc `090` (quá ngắn). | Báo lỗi: "Số điện thoại không đúng định dạng". | ⬜ |
| **TC_F04** | Email sai định dạng | Nhập `testemail.com` (Thiếu `@`) hoặc `test@.com`. | Báo lỗi: "Email không đúng định dạng". | ⬜ |
| **TC_F05** | Năm sinh không hợp lý | Nhập năm `1800` (quá khứ xa) hoặc chữ cái `abcd`. | Báo lỗi: "Năm sinh không hợp lệ" hoặc "Năm sinh phải là số". | ⬜ |
| **TC_F06** | Cố tình Bypass đăng nhập | Truy cập thẳng URL `http://localhost/Quayso/game`. | Trình duyệt bị đá văng về lại trang `/login` hoặc báo lỗi bắt buộc nhập. | ⬜ |
| **TC_F07** | Thử quay số khi hết lượt | Đăng nhập tài khoản đã có cờ `spined = 1`, click nút Quay số (nếu cố tình làm hiện nút). | Hệ thống từ chối cho phép quay tiếp. | ⬜ |
| **TC_F11** | Lỗi Bảo mật XSS | Nhập `<script>alert(1)</script>` vào ô Họ Tên và Submit. | Ký tự bị escape, không bị alert (Thành công qua). | ⬜ |
| **TC_F12** | Lỗi cập nhật thiếu thông tin | Vào trang Cập nhật, xóa trống ô "Họ tên" hoặc "Năm sinh" rồi bấm Cập nhật. | Hệ thống báo lỗi không cho phép bỏ trống trường bắt buộc. | ⬜ |
### 1.2 Kiểm tra Nhập Đúng / Thành công (Positive Tests)
Mục tiêu: Đảm bảo người dùng hợp lệ có thể thao tác mượt mà.
| ID | Kịch Bản Test | Bước Thực Hiện | Kết Quả Mong Đợi | Trạng Thái |
|:---|:---|:---|:---|:---|
| **TC_F08** | Đăng ký thành công | Điền đầy đủ thông tin hợp lệ (SĐT mới). | Chuyển hướng thành công sang màn hình `/game`. | ⬜ |
| **TC_F09** | Đăng nhập thành công | Nhập SĐT cũ đã đăng ký. | Chuyển hướng thành công sang màn hình `/game`. | ⬜ |
| **TC_F10** | Cập nhật thông tin | Đăng nhập. Cập nhật lại Email sang địa chỉ khác. Click "Cập nhật". | Hiện thông báo: "Cập nhật tài khoản thành công". | ⬜ |
| **TC_F13** | Trải nghiệm Quay số thực tế | Đăng nhập hợp lệ, bấm BẮT ĐẦU QUAY. | Vòng quay chạy, thông báo kết quả trúng giải hiển thị. | ⬜ |
| **TC_F14** | Kiểm tra Thể lệ | Bấm nút "Thể lệ tham dự". | Popup Thể lệ game hiển thị ra chứa thông tin đầy đủ. | ⬜ |
---
## 2. Phân Hệ Quản Trị (Backend)
### 2.1 Kiểm tra Lỗi (Negative Tests)
Mục tiêu: Ngăn chặn truy cập trái phép và thao tác lỗi của Quản trị viên.
| ID | Kịch Bản Test | Bước Thực Hiện | Kết Quả Mong Đợi | Trạng Thái |
|:---|:---|:---|:---|:---|
| **TC_B01** | Bỏ trống đăng nhập Admin | Để trống ô Tên đăng nhập và Mật khẩu. Bấm Login. | Hệ thống báo lỗi yêu cầu nhập đủ trường. | ⬜ |
| **TC_B02** | Sai mật khẩu Admin | Nhập đúng Tên đăng nhập, nhập mật khẩu sai bậy bạ. Bấm Login. | Báo lỗi "Đăng nhập thất bại". | ⬜ |
| **TC_B03** | Thêm giải thưởng thiếu Tên | Vào `admin/prize/update`, để trống Tên giải, bấm Thêm mới. | Báo lỗi "Nhập tên giải thưởng". | ⬜ |
| **TC_B04** | Nhập sai "Số lượng" giải | Vào `admin/prize/update`, nhập Số lượng là chữ "Mười". | Hệ thống không cho nhập hoặc báo lỗi khi Submit. | ⬜ |
| **TC_B08** | Upload Ảnh sai định dạng | Thêm/Cập nhật giải thưởng, cố tình upload file `.txt`. | Báo lỗi yêu cầu upload đúng định dạng hình ảnh. (Hoặc Validation chặn) | ⬜ |
### 2.2 Kiểm tra Đúng / Thành Công (Positive Tests)
Mục tiêu: Các tính năng cốt lõi của Admin hoạt động trơn tru.
| ID | Kịch Bản Test | Bước Thực Hiện | Kết Quả Mong Đợi | Trạng Thái |
|:---|:---|:---|:---|:---|
| **TC_B05** | Đăng nhập Admin thành công | Nhập đúng Email và Pass. | Vào được Dashboard quản trị `/admin/account`. | ⬜ |
| **TC_B06** | Kiểm tra Cột thông tin mới | Truy cập trang "DS Người Nhận Giải". | Nhìn thấy 2 cột "EMAIL" và "NĂM SINH" có chứa dữ liệu. | ⬜ |
| **TC_B07** | Lọc và Xuất Excel | Chọn Từ ngày - Đến ngày. Click "Xuất Excel". | Tải thành công file `Danh sách nhận giải.xlsx` về máy. | ⬜ |
| **TC_B09** | Cập nhật Giải thưởng | Sửa thông tin 1 giải thưởng, đổi Số lượng thành 100. Bấm Cập nhật. | Cập nhật thành công, số lượng thay đổi. | ⬜ |
| **TC_B10** | Xóa Giải thưởng | Click biểu tượng Xóa (Thùng rác) 1 giải thưởng. | Giải thưởng biến mất khỏi danh sách. | ⬜ |
| **TC_B11** | Cập nhật Cấu hình hệ thống | Đổi "Số lượt quay". Bấm Lưu cấu hình. | Thông báo cập nhật thành công, số lượt quay lưu lại. | ⬜ |
| **TC_B12** | Test Excel Download | Chạy kịch bản tự động tải Excel. | Tải file `.xlsx` thành công vào thư mục máy tính. | ⬜ |
### V3: Comprehensive Coverage (Luồng Toàn Diện)
*Mở rộng bao phủ toàn bộ API bảo mật ngầm, quản lý cấu hình và đăng xuất hệ thống.*
| ID | Module | Kịch bản Test (Scenario) | Các bước thực hiện (Steps) | Kết quả mong đợi (Expected) |
|---|---|---|---|---|
| TC_F15 | Đăng xuất | Đăng xuất người chơi | 1. Đăng nhập thành công<br>2. Nhấn 'Đăng xuất' | Trở về trạng thái chưa đăng nhập, không thể truy cập trang `/login` (để update). |
| TC_F16 | API Security | Gọi trực tiếp API đổi thưởng khi chưa đăng nhập | 1. Dùng Playwright POST request `/updateprizeuser` (chưa Auth) | Server trả về lỗi chưa đăng nhập, không crash 500. |
| TC_F17 | API Check Spined | API kiểm tra trạng thái lượt quay | 1. Chưa Auth: GET `/checkspined`<br>2. Đã Auth: GET `/checkspined` | 1. `{"error":"Chưa đăng nhập"}`<br>2. `{"success":"...","spined":0/1}` |
| TC_B13 | User Mgmt | Thêm mới User từ Admin | 1. `/admin/users/update?id=0`<br>2. Điền đủ Form: Tên, Email, Pass, Status<br>3. Submit | Tạo tài khoản thành công. |
| TC_B14 | User Mgmt | Cập nhật User từ Admin | 1. Mở User đã có<br>2. Sửa Trạng thái<br>3. Submit | Cập nhật thành công. |
| TC_B15 | Cấu hình | Đổi Banner ảnh hệ thống | 1. `/admin/parameter`<br>2. Upload file hình cho Banner<br>3. Submit | Cập nhật thành công, ảnh được lưu. |
| TC_B16 | Reset Lượt | Admin Reset lượt quay cho User | 1. `/admin/prizeuser`<br>2. Gọi AJAX hàm `update_spined()` cho 1 User | API trả về `success`, user có thể quay lại. |
| TC_B17 | Auth Admin | Admin Đăng xuất | 1. Nhấn Đăng xuất<br>2. Cố gắng vào lại `/admin/account` | Bị đẩy về trang Login, không có quyền. |