Trường Số QA/06 Teachers and staff (P2 smoke)
Trường Số · QA test suite · Phase 1 · 10/09/2026
06 · Teachers and staff (P2 smoke)
Test cases for PRD 06. Every case names the fixture data it needs (see the dashboard fixtures table), numbered steps, and one observable expected result. Trace points to the user story or rule in the PRD.
Key facts, origin and limits
Drafted by an AI assistant in a single session on 10/09/2026 as part of the Trường Số QA suite, under the request quoted verbatim on the dashboard. A proposal for team review, not a sign-off.
Sources
- The Trường Số PRD set (Draft v1, 10/09/2026): user stories, screen tables, business rules and permission matrices, plus the Cloud theme reference.
Limits
- Phase 1 (authoring) only. Cases are executed in Phase 2 against the local build; results are recorded in
testcases.jsonandruns/run-1/, and every result field is stillnot_run. - Cases inherit any open question or inconsistency in the PRDs they trace to.
1Summary
P0
3
P1
11
P2
2
P3
1
| Type | functional | ui-ux | edge | negative | regression | flow | a11y | perf | security | i18n |
|---|---|---|---|---|---|---|---|---|---|---|
| Count | 11 | 0 | 1 | 2 | 0 | 0 | 0 | 0 | 2 | 1 |
2Test cases
| ID | Title | Type | Priority | Phase | Preconditions | Steps | Expected result | PRD trace | Data needed | Run 1 |
|---|---|---|---|---|---|---|---|---|---|---|
| TS-STF-001 | Create a staff record with account and teaching role | functional | P0 | P2 | As U-ACAD-A on /staff. |
| Record created; invitation sent; Users list shows Chờ mời; TeacherProfile created; tab Đang làm việc count +1; Tài khoản chip Chờ mời. | STF-01 | Fixtures below | Not run |
| TS-STF-002 | Duplicate phone shows existing record | negative | P1 | P2 | Staff form. |
| Form shows the existing record with "Mở hồ sơ"; no duplicate created. | STF-01 | Fixtures below | Not run |
| TS-STF-003 | Staff form validation | negative | P2 | P2 | Staff form. |
| Each rejected inline. | 06 §5 | Fixtures below | Not run |
| TS-STF-004 | Unlinked teachers tab and Tạo hồ sơ prefill | functional | P1 | P2 | A FLYER teacher in the school without a staff record. |
| Form prefilled from TeacherProfile (name, phone, email); after save the teacher disappears from the tab. | STF-02 | Fixtures below | Not run |
| TS-STF-005 | Staff list columns and empty state | functional | P1 | P2 | /staff. |
| Mã NV, Họ tên, Chức danh, Loại chip, Chi nhánh chips with +N overflow, Lớp đang dạy, Hợp đồng, Tài khoản chip, Thao tác kebab; empty text exactly "Chưa có nhân sự. Thêm giáo viên và nhân viên để phân lớp và tính công."; default sort by name vi collation. | 06 §5 | Fixtures below | Not run |
| TS-STF-006 | Contract with pay rule; overlap refused; expiry warning | functional | P1 | P2 | As U-ACC on T1 profile tab Hợp đồng. |
| First saved; row chip Sắp hết hạn; notification to U-BM-A and U-ACC; second refused "Hợp đồng trùng thời gian". | STF-03 | Fixtures below | Not run |
| TS-STF-007 | Pay rule with override and cancelled-late percent | functional | P1 | P2 | As U-ACC /staff/pay-rules. |
| Rule saved; staff count using it shown; overrides count 1. | STF-04 | Fixtures below | Not run |
| TS-STF-008 | Generate monthly timesheet from held sessions | functional | P0 | P2 | T1 with 20 held C1 sessions last month, one cancelled_late, T2 substituted one session. |
| T1 timesheet: 19 held lines at 250,000 (the substituted session absent) + cancelled_late line at 125,000; T2 timesheet has the substituted session; status draft; totals correct; planned/cancelled sessions absent. | STF-05, 06 §6 rules | Fixtures below | Not run |
| TS-STF-009 | Recalculate banner after a session edit | functional | P1 | P2 | Timesheet generated; then correct one session. |
| Banner "Có 1 buổi thay đổi sau khi tạo bảng công" with Tính lại; recalculating updates the lines. | STF-05 | Fixtures below | Not run |
| TS-STF-010 | Teacher flags a line and confirms | functional | P1 | P2 | As U-TEACH on own timesheet. |
| Flag open → goes to U-BM-A; timesheet cannot reach confirmed until the flag is resolved; other teachers' timesheets not visible. | STF-06 | Fixtures below | Not run |
| TS-STF-011 | Approve locks lines; export payroll xlsx | functional | P0 | P2 | Confirmed timesheet. |
| Status approved; lines read-only; regenerate refused (409); xlsx with one row per teacher and a detail sheet; export logged. | STF-07 | Fixtures below | Not run |
| TS-STF-012 | Rate snapshot survives pay rule edit | edge | P1 | P2 | Approved timesheet at 250,000. |
| Approved timesheet totals unchanged. | 06 §6 rate snapshot | Fixtures below | Not run |
| TS-STF-013 | Adjustment requires reason and permission | security | P1 | P2 | U-ACC and U-BM-A. |
| U-ACC ok and audited; U-BM-A 403. | 06 §9 staff.timesheets.adjust | Fixtures below | Not run |
| TS-STF-014 | Evaluation shared only after marking | functional | P2 | P2 | As U-BM-A evaluate T1. |
| Teacher sees nothing until shared; then sees the score; profile shows a trend. | STF-08 | Fixtures below | Not run |
| TS-STF-015 | Off-board clears future assignments and deactivates the account | functional | P1 | P2 | T2 with future sessions. |
| Affected sessions listed for reassignment; account deactivated at end of day (stub); history visible; T2 hidden from teacher pickers. | STF-09 | Fixtures below | Not run |
| TS-STF-016 | Cost fields hidden from non-finance roles | security | P1 | P2 | As U-ACAD-A on a staff profile. |
| Pay rule and amounts hidden; API strips rate fields or returns 403 for timesheets. | 06 §9 | Fixtures below | Not run |
| TS-STF-017 | Staff pages in en locale | i18n | P3 | P2 | en. |
| Translated tabs and chips (Full-time / Part-time / Contractor; Draft / Pending confirmation / Confirmed / Approved). | 12 §8 | Fixtures below | Not run |
Trường Số (truongso.net) · FLYER internal