# 1. Education Board Management — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: education_board_management.md — every feature, sub-feature, and rule covered

---

## Test Execution Policy
- Zero tolerance: any deviation from documented behavior = FAILED = bug
- Every bug is immediately logged/reported (Bug ID, feature, sub-feature,
  expected vs actual, severity) and fixed 100% before the group passes
- Feature group passes only at 100% test pass rate

## Coverage Matrix
| Feature | Sub-feature / Rule | Test IDs |
|---------|--------------------|----------|
| 1.1 Create, Edit, and Delete Education Boards | Create a board: name, description, region/context, and status | TC-SA-05-01-001 |
| 1.1 Create, Edit, and Delete Education Boards | Edit a board's details (name, description, status) | TC-SA-05-01-002 |
| 1.1 Create, Edit, and Delete Education Boards | Delete or archive a board (archive preferred where content is mapped to it) | TC-SA-05-01-003 |
| 1.1 Create, Edit, and Delete Education Boards | Board list with status and the count of grades/subjects mapped to it | TC-SA-05-01-004 |
| 1.1 Create, Edit, and Delete Education Boards | Dependency check before delete: boards with mapped content are flagged for archive instead | TC-SA-05-01-005 |
| 1.1 Create, Edit, and Delete Education Boards | Board status: active boards are selectable; inactive boards are not offered for new mapping | TC-SA-05-01-006 |
| 1.1 Create, Edit, and Delete Education Boards | Audit logging of board create/edit/delete | TC-SA-05-01-007 |
| 1.1 Create, Edit, and Delete Education Boards | Rule: a board with mapped grades/subjects/content is archived, not deleted; deletion is reserved for boards with no dependencies | TC-SA-05-01-005 |
| 1.1 Create, Edit, and Delete Education Boards | Rule: archiving a board stops new mapping to it but preserves existing mappings and history; it is reversible (re-activation) | TC-SA-05-01-008 |
| 1.1 Create, Edit, and Delete Education Boards | Rule: an active board is selectable for mapping; an inactive/archived board is not offered for new mapping | TC-SA-05-01-006 |
| 1.1 Create, Edit, and Delete Education Boards | Rule: the board list shows the mapped counts so the dependency state is visible before acting | TC-SA-05-01-004 |
| 1.1 Create, Edit, and Delete Education Boards | Rule: board identity (name) changes are recorded; existing mappings reference the board, not its old name | TC-SA-05-01-009 |
| 1.1 Create, Edit, and Delete Education Boards | Rule: all board changes are audit-logged with the acting admin and timestamp | TC-SA-05-01-007 |
| 1.2 Board-Specific Curriculum Mapping | Board curriculum tree: grades, subjects, and topics organized under the board | TC-SA-05-01-010 |
| 1.2 Board-Specific Curriculum Mapping | Mapping of grades and subjects to the board (a board's grade set and subject set) | TC-SA-05-01-011 |
| 1.2 Board-Specific Curriculum Mapping | Syllabus alignment: topics organized to reflect the board's syllabus structure | TC-SA-05-01-012 |
| 1.2 Board-Specific Curriculum Mapping | Tagging of content/courses to the board's structure (board + grade + subject + topic) | TC-SA-05-01-013 |
| 1.2 Board-Specific Curriculum Mapping | Board-specific views: the curriculum as it is for that board | TC-SA-05-01-014 |
| 1.2 Board-Specific Curriculum Mapping | Consistency: a course tagged to a board's subject appears in that board's context | TC-SA-05-01-015 |
| 1.2 Board-Specific Curriculum Mapping | Audit logging of mapping changes | TC-SA-05-01-016 |
| 1.2 Board-Specific Curriculum Mapping | Rule: the curriculum tree is board-specific: the same grade/subject name under different boards are distinct nodes with distinct mappings | TC-SA-05-01-017 |
| 1.2 Board-Specific Curriculum Mapping | Rule: content and courses are tagged to the board's structure (board + grade + subject + topic); the tag is what places them in the board's context | TC-SA-05-01-013 |
| 1.2 Board-Specific Curriculum Mapping | Rule: a syllabus revision is a mapping update: topics are adjusted and content re-tagged, with the change recorded | TC-SA-05-01-018 |
| 1.2 Board-Specific Curriculum Mapping | Rule: board-specific separation is enforced: material mapped to one board's node does not appear under another board's node | TC-SA-05-01-015 |
| 1.2 Board-Specific Curriculum Mapping | Rule: the board view shows the full tree with mapping counts, so gaps (unmapped nodes) are visible | TC-SA-05-01-014 |
| 1.2 Board-Specific Curriculum Mapping | Rule: mapping changes are audit-logged with the board, the nodes, and the timestamp | TC-SA-05-01-016 |
| 1.3 Board-Wise Certification | Certification requirements per board: the completion criteria (subjects, assessments, thresholds) | TC-SA-05-01-019 |
| 1.3 Board-Wise Certification | Completion evaluation: a learner's progress checked against the board's requirements | TC-SA-05-01-020 |
| 1.3 Board-Wise Certification | Certification issuance: a board-wise certificate generated on completion | TC-SA-05-01-021 |
| 1.3 Board-Wise Certification | Certificate content: the board name, the program/grade, the learner, and the outcome | TC-SA-05-01-022 |
| 1.3 Board-Wise Certification | Certification records: issued certificates per board with the learner and date | TC-SA-05-01-023 |
| 1.3 Board-Wise Certification | Re-issue and revocation (per policy) with a record | TC-SA-05-01-024 |
| 1.3 Board-Wise Certification | Audit logging of certification configuration and issuance | TC-SA-05-01-025 |
| 1.3 Board-Wise Certification | Rule: certification is board-wise: the credential reflects the specific board and program, not a generic completion | TC-SA-05-01-022 |
| 1.3 Board-Wise Certification | Rule: issuance is automatic on meeting the configured requirements; the requirements are the single source of the criteria | TC-SA-05-01-020 |
| 1.3 Board-Wise Certification | Rule: a certificate shows the board, program, learner, and outcome; it is a board-specific credential | TC-SA-05-01-022 |
| 1.3 Board-Wise Certification | Rule: re-issue and revocation are recorded against the original certificate; the history is intact | TC-SA-05-01-024 |
| 1.3 Board-Wise Certification | Rule: a revocation is reason-recorded and the learner is notified per policy | TC-SA-05-01-026 |
| 1.3 Board-Wise Certification | Rule: certification configuration and all issuance events are audit-logged with the board, learner, and timestamp | TC-SA-05-01-025 |

## 1.1 Create, Edit, and Delete Education Boards

### TC-SA-05-01-001 — Create a board with name, description, region/context, and status
**Type:** Positive
**Covers:** 1.1 → Create a board: name, description, region/context, and status
**Preconditions:** The platform will offer Cambridge curriculum content.
**Steps:**
1. Open Curriculum Organization → Education Boards.
2. Create the board: name "Cambridge", a description, and its region/context.
3. Save and verify the board appears in the list as active.
**Expected Result:** The board is created with its identity and details; it appears in the list as active and is selectable for mapping.
**Priority:** Critical

### TC-SA-05-01-002 — Edit a board's details (name, description, status)
**Type:** Positive
**Covers:** 1.1 → Edit a board's details (name, description, status)
**Preconditions:** The Cambridge board exists; its description needs a syllabus revision note.
**Steps:**
1. Open the Cambridge board.
2. Edit the description (add the syllabus revision note) and save.
3. Verify the updated description is shown.
**Expected Result:** The board's description is updated and the change is recorded.
**Priority:** High

### TC-SA-05-01-003 — Archive a board with mapped content; delete a board with no mappings
**Type:** Positive
**Covers:** 1.1 → Delete or archive a board (archive preferred where content is mapped to it)
**Preconditions:** Board A has 3 grades, 12 subjects, and mapped courses; Board B was created in error with no mappings.
**Steps:**
1. Archive Board A and verify it becomes inactive (not selectable for new mapping) with existing content intact.
2. Delete Board B and verify it is removed.
**Expected Result:** Board A is archived (inactive, content intact); Board B is deleted (nothing mapped).
**Priority:** Critical

### TC-SA-05-01-004 — The board list shows status and the count of grades/subjects mapped to each board
**Type:** Positive
**Covers:** 1.1 → Board list with status and the count of grades/subjects mapped to it; Rule: the board list shows the mapped counts so the dependency state is visible before acting
**Preconditions:** Multiple boards exist with varying mapped counts.
**Steps:**
1. Open the board list.
2. Verify each board shows its status (active/inactive) and the count of grades/subjects mapped to it.
**Expected Result:** The board list shows each board's status and mapped counts — the dependency state is visible before acting.
**Priority:** High

### TC-SA-05-01-005 — Dependency check before delete: a board with mapped content is flagged for archive instead
**Type:** Negative
**Covers:** 1.1 → Dependency check before delete: boards with mapped content are flagged for archive instead; Rule: a board with mapped grades/subjects/content is archived, not deleted; deletion is reserved for boards with no dependencies
**Preconditions:** Board A has mapped grades, subjects, and courses.
**Steps:**
1. Attempt to delete Board A.
2. Verify the dependency check flags the board for archive instead of deletion.
**Expected Result:** Deletion is not offered cleanly for Board A; the dependency check flags it for archive instead.
**Priority:** Critical

### TC-SA-05-01-006 — Active boards are selectable for mapping; inactive/archived boards are not offered for new mapping
**Type:** Negative
**Covers:** 1.1 → Board status: active boards are selectable; inactive boards are not offered for new mapping; Rule: an active board is selectable for mapping; an inactive/archived board is not offered for new mapping
**Preconditions:** Board A is active; Board B is archived.
**Steps:**
1. Open the board selector for new grade/subject mapping.
2. Verify Board A is offered and Board B is not.
**Expected Result:** Board A is selectable for new mapping; Board B (archived) is not offered.
**Priority:** Critical

### TC-SA-05-01-007 — Board create, edit, archive, and delete are audit-logged with the acting admin and timestamp
**Type:** Positive
**Covers:** 1.1 → Audit logging of board create/edit/delete; Rule: all board changes are audit-logged with the acting admin and timestamp
**Preconditions:** A board has been created, edited, archived, and another deleted.
**Steps:**
1. Open the audit trail and filter by "board".
2. Verify entries for create, edit, archive, and delete with the acting admin and timestamp.
**Expected Result:** Each board create, edit, archive, and delete is audit-logged with the acting admin and timestamp.
**Priority:** Critical

### TC-SA-05-01-008 — Archiving a board is reversible (re-activation); existing mappings and history are preserved
**Type:** Positive
**Covers:** 1.1 → Rule: archiving a board stops new mapping to it but preserves existing mappings and history; it is reversible (re-activation)
**Preconditions:** Board A is archived with existing mapped content.
**Steps:**
1. Verify the existing mapped content and history remain intact while archived.
2. Re-activate Board A.
3. Verify Board A is again selectable for new mapping.
**Expected Result:** The archived board's mappings and history are preserved; re-activation restores it to selectable status.
**Priority:** High

### TC-SA-05-01-009 — Board identity (name) changes are recorded; existing mappings reference the board, not its old name
**Type:** Edge
**Covers:** 1.1 → Rule: board identity (name) changes are recorded; existing mappings reference the board, not its old name
**Preconditions:** Board "Cambridge" has mapped content; it is renamed to "Cambridge International".
**Steps:**
1. Rename the board to "Cambridge International".
2. Verify the existing mapped content still references the board (now under the new name).
3. Verify the name change is recorded.
**Expected Result:** The rename is recorded; existing mappings still reference the board (not its old name) — content is not orphaned.
**Priority:** High

## 1.2 Board-Specific Curriculum Mapping

### TC-SA-05-01-010 — The board curriculum tree organizes grades, subjects, and topics under the board
**Type:** Positive
**Covers:** 1.2 → Board curriculum tree: grades, subjects, and topics organized under the board
**Preconditions:** The Cambridge board is created.
**Steps:**
1. Open the Cambridge board's curriculum tree.
2. Verify grades, subjects, and topics are organized under the board (board → grades → subjects → topics).
**Expected Result:** The curriculum tree shows the board's grades, subjects, and topics organized in the hierarchy.
**Priority:** Critical

### TC-SA-05-01-011 — Grades and subjects are mapped to the board (the board's grade set and subject set)
**Type:** Positive
**Covers:** 1.2 → Mapping of grades and subjects to the board (a board's grade set and subject set)
**Preconditions:** The Cambridge board is created.
**Steps:**
1. Add the board's grades (per Cambridge's year structure).
2. Under each grade, add the subjects Cambridge offers.
3. Verify the board's grade set and subject set are complete.
**Expected Result:** The board's grades and subjects are mapped — the board's grade set and subject set are established.
**Priority:** Critical

### TC-SA-05-01-012 — Syllabus alignment: topics are organized to reflect the board's syllabus structure
**Type:** Positive
**Covers:** 1.2 → Syllabus alignment: topics organized to reflect the board's syllabus structure
**Preconditions:** The Cambridge board's grades and subjects are mapped.
**Steps:**
1. Organize the topics under each subject to reflect the Cambridge syllabus structure.
2. Verify the tree mirrors the board's curriculum.
**Expected Result:** The topics reflect the board's syllabus structure — the tree mirrors the board's curriculum.
**Priority:** High

### TC-SA-05-01-013 — Content/courses are tagged to the board's structure (board + grade + subject + topic)
**Type:** Positive
**Covers:** 1.2 → Tagging of content/courses to the board's structure (board + grade + subject + topic); Rule: content and courses are tagged to the board's structure (board + grade + subject + topic); the tag is what places them in the board's context
**Preconditions:** The Cambridge board's structure exists (Grade 10 → Mathematics → topics).
**Steps:**
1. Tag a course to Cambridge → Grade 10 → Mathematics → the relevant topics.
2. Verify the course now appears in the Cambridge context for that grade and subject.
**Expected Result:** The course is tagged to the board's structure and appears in the Cambridge context for Grade 10 Mathematics.
**Priority:** Critical

### TC-SA-05-01-014 — The board-specific view shows the full tree with mapping counts; gaps (unmapped nodes) are visible
**Type:** Positive
**Covers:** 1.2 → Board-specific views: the curriculum as it is for that board; Rule: the board view shows the full tree with mapping counts, so gaps (unmapped nodes) are visible
**Preconditions:** The Cambridge board's tree has some mapped and some unmapped nodes.
**Steps:**
1. Open the Cambridge board-specific view.
2. Verify the full tree shows grades, subjects, topics, and the courses/content mapped to each node.
3. Verify unmapped nodes (gaps) are visible.
**Expected Result:** The board view shows the full tree with mapping counts; unmapped nodes (gaps) are visible.
**Priority:** High

### TC-SA-05-01-015 — Consistency: a course tagged to a board's subject appears in that board's context and not another board's
**Type:** Positive
**Covers:** 1.2 → Consistency: a course tagged to a board's subject appears in that board's context; Rule: board-specific separation is enforced: material mapped to one board's node does not appear under another board's node
**Preconditions:** A course is tagged to Cambridge Grade 10 Mathematics; a CAPS Grade 10 Mathematics node also exists.
**Steps:**
1. Verify the course appears in the Cambridge Grade 10 Mathematics context.
2. Verify the course does NOT appear in the CAPS Grade 10 Mathematics context.
**Expected Result:** The course appears only in the Cambridge context — board-specific separation is enforced.
**Priority:** Critical

### TC-SA-05-01-016 — Mapping changes are audit-logged with the board, the nodes changed, and the timestamp
**Type:** Positive
**Covers:** 1.2 → Audit logging of mapping changes; Rule: mapping changes are audit-logged with the board, the nodes, and the timestamp
**Preconditions:** The board's topic structure is updated (topics added/renamed) and content re-tagged.
**Steps:**
1. Open the audit trail and filter by "mapping".
2. Verify the entry shows the board, the nodes changed, and the timestamp.
**Expected Result:** The mapping change is audit-logged with the board, the nodes changed, and the timestamp.
**Priority:** Critical

### TC-SA-05-01-017 — The same grade/subject name under different boards are distinct nodes with distinct mappings
**Type:** Edge
**Covers:** 1.2 → Rule: the curriculum tree is board-specific: the same grade/subject name under different boards are distinct nodes with distinct mappings
**Preconditions:** "Grade 10 Mathematics" exists under both Cambridge and CAPS boards.
**Steps:**
1. Tag a course to Cambridge Grade 10 Mathematics.
2. Verify the CAPS Grade 10 Mathematics node is unaffected (distinct node, distinct mapping).
**Expected Result:** The two "Grade 10 Mathematics" nodes are distinct — the Cambridge mapping does not affect the CAPS node.
**Priority:** High

### TC-SA-05-01-018 — A syllabus revision is a mapping update: topics are adjusted and content re-tagged, with the change recorded
**Type:** Positive
**Covers:** 1.2 → Rule: a syllabus revision is a mapping update: topics are adjusted and content re-tagged, with the change recorded
**Preconditions:** The board's syllabus is revised (topics need adding/renaming).
**Steps:**
1. Update the topic structure (add/rename topics) per the revision.
2. Re-tag the affected content to the updated topics.
3. Verify the mapping change is recorded in the audit trail.
**Expected Result:** The topics are adjusted, the content is re-tagged, and the change is recorded — the syllabus revision is a tracked mapping update.
**Priority:** High

## 1.3 Board-Wise Certification

### TC-SA-05-01-019 — Certification requirements per board: the completion criteria (subjects, assessments, thresholds) are configured
**Type:** Positive
**Covers:** 1.3 → Certification requirements per board: the completion criteria (subjects, assessments, thresholds)
**Preconditions:** The Cambridge board's certification requirements are to be configured.
**Steps:**
1. Configure the requirements: completion of the grade's subjects with the defined assessment thresholds.
2. Save and verify the requirements are live for the board's programs.
**Expected Result:** The certification requirements are configured and live for the board's programs.
**Priority:** Critical

### TC-SA-05-01-020 — Completion evaluation: a learner's progress is checked against the board's requirements; issuance is automatic on meeting them
**Type:** Positive
**Covers:** 1.3 → Completion evaluation: a learner's progress checked against the board's requirements; Rule: issuance is automatic on meeting the configured requirements; the requirements are the single source of the criteria
**Preconditions:** A learner completes the Cambridge board's requirements (subjects + thresholds).
**Steps:**
1. Have the learner complete the requirements.
2. Verify the platform evaluates their progress against the board's criteria.
3. Verify the board-wise certification is issued automatically on meeting them.
**Expected Result:** The learner's progress is evaluated against the criteria; the certification is issued automatically on completion.
**Priority:** Critical

### TC-SA-05-01-021 — Certification issuance: a board-wise certificate is generated on completion
**Type:** Positive
**Covers:** 1.3 → Certification issuance: a board-wise certificate generated on completion
**Preconditions:** A learner has met the board's certification requirements.
**Steps:**
1. Verify a board-wise certificate is generated for the learner on completion.
**Expected Result:** A board-wise certificate is generated for the learner on completion.
**Priority:** Critical

### TC-SA-05-01-022 — Certificate content: the board name, the program/grade, the learner, and the outcome; it is a board-specific credential
**Type:** Positive
**Covers:** 1.3 → Certificate content: the board name, the program/grade, the learner, and the outcome; Rule: certification is board-wise: the credential reflects the specific board and program, not a generic completion; Rule: a certificate shows the board, program, learner, and outcome; it is a board-specific credential
**Preconditions:** A board-wise certificate has been issued.
**Steps:**
1. Open the issued certificate.
2. Verify it shows the board name, the program/grade, the learner, and the outcome.
**Expected Result:** The certificate shows the board, program, learner, and outcome — a board-specific credential, not a generic completion.
**Priority:** High

### TC-SA-05-01-023 — Certification records: issued certificates per board with the learner and date
**Type:** Positive
**Covers:** 1.3 → Certification records: issued certificates per board with the learner and date
**Preconditions:** Multiple certificates have been issued for the board.
**Steps:**
1. Open the certification records for the board.
2. Verify the issued certificates show the learners and dates, matching the completions.
**Expected Result:** The certification records show the issued certificates with learners and dates, matching the completions.
**Priority:** High

### TC-SA-05-01-024 — Re-issue and revocation are recorded against the original certificate; the history is intact
**Type:** Positive
**Covers:** 1.3 → Re-issue and revocation (per policy) with a record; Rule: re-issue and revocation are recorded against the original certificate; the history is intact
**Preconditions:** A certificate needs re-issuing (a correction); another needs revocation (a completion invalidated per policy).
**Steps:**
1. Re-issue the first certificate with the correction and verify the re-issue is recorded against the original.
2. Revoke the second certificate with the reason and verify the revocation is recorded against the original.
**Expected Result:** The re-issue and revocation are both recorded against the original certificates — the history is intact.
**Priority:** High

### TC-SA-05-01-025 — Certification configuration and all issuance events are audit-logged with the board, learner, and timestamp
**Type:** Positive
**Covers:** 1.3 → Audit logging of certification configuration and issuance; Rule: certification configuration and all issuance events are audit-logged with the board, learner, and timestamp
**Preconditions:** The certification requirements are configured; certificates are issued, re-issued, and revoked.
**Steps:**
1. Open the audit trail and filter by "certification".
2. Verify entries for the configuration and each issuance, re-issue, and revocation with the board, learner, and timestamp.
**Expected Result:** The configuration and all issuance events are audit-logged with the board, learner, and timestamp.
**Priority:** Critical

### TC-SA-05-01-026 — A revocation is reason-recorded and the learner is notified per policy
**Type:** Negative
**Covers:** 1.3 → Rule: a revocation is reason-recorded and the learner is notified per policy
**Preconditions:** A certificate is to be revoked (a completion invalidated per policy).
**Steps:**
1. Revoke the certificate with the reason.
2. Verify the revocation is reason-recorded.
3. Verify the learner is notified per policy.
**Expected Result:** The revocation is reason-recorded and the learner is notified per policy.
**Priority:** High
