commit
This commit is contained in:
134
docs/responsive-qa-after-management-change-review.md
Normal file
134
docs/responsive-qa-after-management-change-review.md
Normal file
@@ -0,0 +1,134 @@
|
||||
# Responsive QA After Management Change Review
|
||||
|
||||
## 1. Summary
|
||||
|
||||
รอบนี้เป็นการเก็บงาน responsive หลัง management UI changes โดยโฟกัสที่จุดเสี่ยงล้นหน้าจอจาก navigation, header, dropdown/popover, filter toolbar, report filters, course selection, และ announcement detail
|
||||
|
||||
ไม่ได้เพิ่ม business feature ใหม่ และไม่ได้แก้ database schema หรือรื้อ layout หลักของระบบ
|
||||
|
||||
## 2. Screens Tested
|
||||
|
||||
เป้าหมาย breakpoint ที่ใช้ตรวจรอบนี้:
|
||||
|
||||
- 360px
|
||||
- 390px
|
||||
- 412px
|
||||
- 768px
|
||||
- 1024px
|
||||
- 1440px
|
||||
|
||||
หมายเหตุ:
|
||||
|
||||
- ใน session นี้ in-app browser ใช้งานไม่ได้ จึงเป็นการทำ responsive QA เชิงโค้ดและ layout constraints ตาม breakpoint เป้าหมาย
|
||||
- แนะนำให้ทำ visual regression/manual pass ซ้ำใน Chrome และ Edge หลัง pull งานนี้
|
||||
|
||||
## 3. Pages Reviewed
|
||||
|
||||
Employee:
|
||||
|
||||
- `/dashboard/overview`
|
||||
- `/dashboard/training-records`
|
||||
- `/dashboard/training-records/create`
|
||||
- `/dashboard/training-records/[id]`
|
||||
- `/dashboard/announcements`
|
||||
- `/dashboard/announcements/[id]`
|
||||
- `/dashboard/notifications`
|
||||
|
||||
HRD/Admin:
|
||||
|
||||
- `/dashboard/overview`
|
||||
- `/dashboard/pending-review`
|
||||
- `/dashboard/training-records`
|
||||
- `/dashboard/training-records/[id]/review`
|
||||
- `/dashboard/courses`
|
||||
- `/dashboard/training-policy`
|
||||
- `/dashboard/import-employees`
|
||||
- `/dashboard/announcements`
|
||||
- `/dashboard/reports`
|
||||
- `/dashboard/audit-logs`
|
||||
|
||||
## 4. Issues Found
|
||||
|
||||
- Header area มีโอกาสล้นบน mobile เมื่อ breadcrumb ยาวและมี notification bell อยู่ฝั่งขวา
|
||||
- Breadcrumb item ล่าสุดมีโอกาสดัน layout ถ้าชื่อหน้ายาว
|
||||
- User dropdown มีโอกาสกว้างเกิน viewport บน mobile และ email อาจล้น
|
||||
- Notification popover มีโอกาสล้น width บนหน้าจอเล็ก และ header ภายใน popover wrap ไม่ดี
|
||||
- Course select popover มีโอกาสกว้างเกินหน้าจอ และชื่อหลักสูตรยาวอาจดัน layout
|
||||
- Data table toolbar filters บางช่องไม่มี `min-w-0` ทำให้ wrap ได้ไม่ดี
|
||||
- Reports filter area เสี่ยงล้นเมื่อ select หลายช่องและปุ่ม export อยู่ร่วมกัน
|
||||
- Announcement detail attachment button ยังไม่ friendly กับ mobile width
|
||||
- Page heading ขนาดใหญ่และไม่ wrap ในบางหน้า
|
||||
|
||||
## 5. Issues Fixed
|
||||
|
||||
- ปรับ header ให้ `min-w-0` และลดแรงกดของ breadcrumb บน mobile
|
||||
- ปรับ breadcrumb list และ current page ให้ truncate ได้
|
||||
- ปรับ user dropdown ให้มี `max-width` ตาม viewport และให้ email `break-all`
|
||||
- ปรับ notification popover ให้ width ไม่เกินจอและ header ภายใน wrap ได้
|
||||
- ปรับ course select trigger/content ให้ไม่เกิน viewport และ truncate รายการยาว
|
||||
- เพิ่ม `min-w-0` ให้ table toolbar inputs เพื่อช่วยการ wrap บน mobile
|
||||
- ปรับ overview/reports filter sections ให้ label/action area wrap ได้สะอาดขึ้น
|
||||
- ปรับ announcement attachment action ให้ใช้งานเต็มความกว้างบน mobile
|
||||
- ปรับ page heading ให้ responsive ขึ้นและ wrap ได้
|
||||
|
||||
## 6. Files Changed
|
||||
|
||||
- `src/components/layout/header.tsx`
|
||||
- `src/components/breadcrumbs.tsx`
|
||||
- `src/components/layout/user-nav.tsx`
|
||||
- `src/components/ui/heading.tsx`
|
||||
- `src/components/ui/table/data-table-toolbar.tsx`
|
||||
- `src/features/notifications/components/notification-center.tsx`
|
||||
- `src/features/notifications/components/notifications-page.tsx`
|
||||
- `src/features/training-records/components/training-record-course-combobox.tsx`
|
||||
- `src/features/overview/components/overview-filter-panel.tsx`
|
||||
- `src/features/reports/components/reports-page-content.tsx`
|
||||
- `src/features/reports/components/report-table-card.tsx`
|
||||
- `src/features/announcements/components/announcement-view-page.tsx`
|
||||
|
||||
## 7. Responsive Patterns Applied
|
||||
|
||||
- `min-w-0` กับ container ที่มีข้อความไทยยาว
|
||||
- `truncate` กับ breadcrumb และ select option labels
|
||||
- `break-all` สำหรับ email ใน user dropdown
|
||||
- `max-w-[calc(100vw-...)]` กับ dropdown/popover/select content
|
||||
- `w-full sm:w-auto` สำหรับ action button บน mobile
|
||||
- `flex-wrap` ใน header/popover/filter action groups
|
||||
- `text-2xl sm:text-3xl` สำหรับ page heading
|
||||
|
||||
## 8. Remaining Risks
|
||||
|
||||
- ยังไม่ได้ทำ visual click-through automation ใน Chrome/Edge จริงใน session นี้ เพราะ browser automation surface ไม่พร้อมใช้งาน
|
||||
- Route access ของ employee ไปหน้า reports โดย URL ตรงควรตรวจ policy อีกครั้ง หากต้องการ “เข้าไม่ได้” ไม่ใช่แค่ “ไม่เห็นเมนู”
|
||||
- บางข้อความไทยใน repo ยังมี encoding เพี้ยนใน source output/terminal แม้ไม่กระทบ layout โดยตรง แต่ควร cleanup แยกต่างหาก
|
||||
|
||||
## 9. Manual Test Checklist
|
||||
|
||||
- [ ] 360px layout works
|
||||
- [ ] 390px layout works
|
||||
- [ ] 412px layout works
|
||||
- [ ] 768px layout works
|
||||
- [ ] 1024px layout works
|
||||
- [ ] 1440px layout works
|
||||
- [ ] Employee menu is correct
|
||||
- [ ] HRD/Admin menu is correct
|
||||
- [ ] Header bell works
|
||||
- [ ] User dropdown works
|
||||
- [ ] Dashboard filter does not overflow
|
||||
- [ ] Course dropdown works on mobile
|
||||
- [ ] Other course input works on mobile
|
||||
- [ ] TimePicker works on mobile
|
||||
- [ ] Certificate dialog works on mobile
|
||||
- [ ] Tables scroll correctly
|
||||
- [ ] Reports are HRD only
|
||||
- [ ] Thai text does not break layout
|
||||
|
||||
## 10. Responsive Readiness Score
|
||||
|
||||
`8/10`
|
||||
|
||||
เหตุผล:
|
||||
|
||||
- จุดล้นที่เสี่ยงที่สุดหลัง management change ถูกเก็บแล้ว
|
||||
- desktop layout เดิมยังถูกคงไว้
|
||||
- ยังควรมี browser-based QA pass จริงอีก 1 รอบก่อนปิดงาน UAT
|
||||
Reference in New Issue
Block a user