# 7.2 HR System Sync — Test Cases

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

## Test Execution Policy

- Zero tolerance: any deviation from the documented behavior is a defect.
- Every failed test is logged with a Bug ID, the feature, the sub-feature, the expected vs actual result, and the severity; 100% of bugs are fixed before the group passes.
- 100% pass rate is required for the group to be marked complete.

## Coverage Matrix

| Feature | Sub-feature / Rule | Test IDs |
|---------|--------------------|----------|
| 7.2.1 | Connector setup per HRIS | TC-COR-7-02-001 |
| 7.2.1 | Field mapping (name, email, department, role) | TC-COR-7-02-002 |
| 7.2.1 | Connection test and health monitor | TC-COR-7-02-003 |
| 7.2.1 | Sync direction (HRIS is source of truth) | TC-COR-7-02-004 |
| 7.2.1 | Available on web and mobile | TC-COR-7-02-005 |
| 7.2.1 | Event logging (viewed) | TC-COR-7-02-006 |
| 7.2.1 | Audit logging of the HRIS connector | TC-COR-7-02-007 |
| 7.2.1 | Rule: While the connector is active, manual roster edits are overridden by the next sync. | TC-COR-7-02-008 |
| 7.2.1 | Rule: Events (viewed) are logged with the account and the timestamp. | TC-COR-7-02-009 |
| 7.2.1 | Rule: The HRIS connector is audit-logged with the account and the timestamp. | TC-COR-7-02-010 |
| 7.2.2 | New joiner auto-enrollment | TC-COR-7-02-011 |
| 7.2.2 | Department and role propagation | TC-COR-7-02-012 |
| 7.2.2 | Seat pool reconciliation | TC-COR-7-02-013 |
| 7.2.2 | Sync report (added, updated, unchanged) | TC-COR-7-02-014 |
| 7.2.2 | Available on web and mobile | TC-COR-7-02-015 |
| 7.2.2 | Event logging (viewed) | TC-COR-7-02-016 |
| 7.2.2 | Audit logging of the employee sync | TC-COR-7-02-017 |
| 7.2.2 | Rule: Auto-enrollment is skipped when no seat is available; the joiner is queued. | TC-COR-7-02-018 |
| 7.2.2 | Rule: Events (viewed) are logged with the account and the timestamp. | TC-COR-7-02-019 |
| 7.2.2 | Rule: The employee sync is audit-logged with the account and the timestamp. | TC-COR-7-02-020 |
| 7.2.3 | Leaver detection from the HRIS | TC-COR-7-02-021 |
| 7.2.3 | Automatic access deactivation | TC-COR-7-02-022 |
| 7.2.3 | Seat revocation on offboarding | TC-COR-7-02-023 |
| 7.2.3 | Record preservation | TC-COR-7-02-024 |
| 7.2.3 | Available on web and mobile | TC-COR-7-02-025 |
| 7.2.3 | Event logging (viewed) | TC-COR-7-02-026 |
| 7.2.3 | Audit logging of the offboarding sync | TC-COR-7-02-027 |
| 7.2.3 | Rule: Deactivation happens within one sync cycle. | TC-COR-7-02-028 |
| 7.2.3 | Rule: Preserved records remain visible in reports but not in the active directory. | TC-COR-7-02-029 |
| 7.2.3 | Rule: Events (viewed) are logged with the account and the timestamp. | TC-COR-7-02-030 |
| 7.2.3 | Rule: The offboarding sync is audit-logged with the account and the timestamp. | TC-COR-7-02-031 |


## 7.2.1 HRIS Connector

### TC-COR-7-02-001 — Connector setup per HRIS

**Type:** Positive

**Covers:** 7.2.1 → Connector setup per HRIS; Rule: While the connector is active, manual roster edits are overridden by the next sync.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Connector setup per HRIS.

2. Observe the result and verify the full behavior: Connector setup per HRIS.

**Expected Result:** Connector setup per HRIS — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-002 — Field mapping (name, email, department, role)

**Type:** Positive

**Covers:** 7.2.1 → Field mapping (name, email, department, role); Rule: While the connector is active, manual roster edits are overridden by the next sync.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Field mapping (name, email, department, role).

2. Observe the result and verify the full behavior: Field mapping (name, email, department, role).

**Expected Result:** Field mapping (name, email, department, role) — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-003 — Connection test and health monitor

**Type:** Positive

**Covers:** 7.2.1 → Connection test and health monitor; Rule: While the connector is active, manual roster edits are overridden by the next sync.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Connection test and health monitor.

2. Observe the result and verify the full behavior: Connection test and health monitor.

**Expected Result:** Connection test and health monitor — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-004 — Sync direction (HRIS is source of truth)

**Type:** Positive

**Covers:** 7.2.1 → Sync direction (HRIS is source of truth); Rule: While the connector is active, manual roster edits are overridden by the next sync.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Sync direction (HRIS is source of truth).

2. Observe the result and verify the full behavior: Sync direction (HRIS is source of truth).

**Expected Result:** Sync direction (HRIS is source of truth) — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-005 — Available on web and mobile

**Type:** Positive

**Covers:** 7.2.1 → Available on web and mobile; Rule: While the connector is active, manual roster edits are overridden by the next sync.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Available on web and mobile.

2. Observe the result and verify the full behavior: Available on web and mobile.

**Expected Result:** Available on web and mobile — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-006 — Event logging (viewed)

**Type:** Positive

**Covers:** 7.2.1 → Event logging (viewed); Rule: While the connector is active, manual roster edits are overridden by the next sync.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Event logging (viewed).

2. Observe the result and verify the full behavior: Event logging (viewed).

**Expected Result:** Event logging (viewed) — delivered exactly as documented.

**Priority:** Medium

### TC-COR-7-02-007 — Audit logging of the HRIS connector

**Type:** Positive

**Covers:** 7.2.1 → Audit logging of the HRIS connector; Rule: While the connector is active, manual roster edits are overridden by the next sync.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Audit logging of the HRIS connector.

2. Observe the result and verify the full behavior: Audit logging of the HRIS connector.

**Expected Result:** Audit logging of the HRIS connector — delivered exactly as documented.

**Priority:** Medium

### TC-COR-7-02-008 — Rule: While the connector is active, manual roster edits are overridden by the next sync.

**Type:** Positive

**Covers:** 7.2.1 → While the connector is active, manual roster edits are overridden by the next sync.; Rule: While the connector is active, manual roster edits are overridden by the next sync..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: While the connector is active, manual roster edits are overridden by the next sync..

2. Observe the result and verify the full behavior: While the connector is active, manual roster edits are overridden by the next sync..

**Expected Result:** While the connector is active, manual roster edits are overridden by the next sync. — delivered exactly as documented.

**Priority:** High

### TC-COR-7-02-009 — Rule: Events (viewed) are logged with the account and the timestamp.

**Type:** Positive

**Covers:** 7.2.1 → Events (viewed) are logged with the account and the timestamp.; Rule: Events (viewed) are logged with the account and the timestamp..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Events (viewed) are logged with the account and the timestamp..

2. Observe the result and verify the full behavior: Events (viewed) are logged with the account and the timestamp..

**Expected Result:** Events (viewed) are logged with the account and the timestamp. — delivered exactly as documented.

**Priority:** High

### TC-COR-7-02-010 — Rule: The HRIS connector is audit-logged with the account and the timestamp.

**Type:** Positive

**Covers:** 7.2.1 → The HRIS connector is audit-logged with the account and the timestamp.; Rule: The HRIS connector is audit-logged with the account and the timestamp..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: The HRIS connector is audit-logged with the account and the timestamp..

2. Observe the result and verify the full behavior: The HRIS connector is audit-logged with the account and the timestamp..

**Expected Result:** The HRIS connector is audit-logged with the account and the timestamp. — delivered exactly as documented.

**Priority:** High


## 7.2.2 Employee Sync

### TC-COR-7-02-011 — New joiner auto-enrollment

**Type:** Positive

**Covers:** 7.2.2 → New joiner auto-enrollment; Rule: Auto-enrollment is skipped when no seat is available; the joiner is queued.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: New joiner auto-enrollment.

2. Observe the result and verify the full behavior: New joiner auto-enrollment.

**Expected Result:** New joiner auto-enrollment — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-012 — Department and role propagation

**Type:** Positive

**Covers:** 7.2.2 → Department and role propagation; Rule: Auto-enrollment is skipped when no seat is available; the joiner is queued.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Department and role propagation.

2. Observe the result and verify the full behavior: Department and role propagation.

**Expected Result:** Department and role propagation — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-013 — Seat pool reconciliation

**Type:** Positive

**Covers:** 7.2.2 → Seat pool reconciliation; Rule: Auto-enrollment is skipped when no seat is available; the joiner is queued.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Seat pool reconciliation.

2. Observe the result and verify the full behavior: Seat pool reconciliation.

**Expected Result:** Seat pool reconciliation — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-014 — Sync report (added, updated, unchanged)

**Type:** Positive

**Covers:** 7.2.2 → Sync report (added, updated, unchanged); Rule: Auto-enrollment is skipped when no seat is available; the joiner is queued.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Sync report (added, updated, unchanged).

2. Observe the result and verify the full behavior: Sync report (added, updated, unchanged).

**Expected Result:** Sync report (added, updated, unchanged) — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-015 — Available on web and mobile

**Type:** Positive

**Covers:** 7.2.2 → Available on web and mobile; Rule: Auto-enrollment is skipped when no seat is available; the joiner is queued.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Available on web and mobile.

2. Observe the result and verify the full behavior: Available on web and mobile.

**Expected Result:** Available on web and mobile — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-016 — Event logging (viewed)

**Type:** Positive

**Covers:** 7.2.2 → Event logging (viewed); Rule: Auto-enrollment is skipped when no seat is available; the joiner is queued.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Event logging (viewed).

2. Observe the result and verify the full behavior: Event logging (viewed).

**Expected Result:** Event logging (viewed) — delivered exactly as documented.

**Priority:** Medium

### TC-COR-7-02-017 — Audit logging of the employee sync

**Type:** Positive

**Covers:** 7.2.2 → Audit logging of the employee sync; Rule: Auto-enrollment is skipped when no seat is available; the joiner is queued.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Audit logging of the employee sync.

2. Observe the result and verify the full behavior: Audit logging of the employee sync.

**Expected Result:** Audit logging of the employee sync — delivered exactly as documented.

**Priority:** Medium

### TC-COR-7-02-018 — Rule: Auto-enrollment is skipped when no seat is available; the joiner is queued.

**Type:** Positive

**Covers:** 7.2.2 → Auto-enrollment is skipped when no seat is available; the joiner is queued.; Rule: Auto-enrollment is skipped when no seat is available; the joiner is queued..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Auto-enrollment is skipped when no seat is available; the joiner is queued..

2. Observe the result and verify the full behavior: Auto-enrollment is skipped when no seat is available; the joiner is queued..

**Expected Result:** Auto-enrollment is skipped when no seat is available; the joiner is queued. — delivered exactly as documented.

**Priority:** High

### TC-COR-7-02-019 — Rule: Events (viewed) are logged with the account and the timestamp.

**Type:** Positive

**Covers:** 7.2.2 → Events (viewed) are logged with the account and the timestamp.; Rule: Events (viewed) are logged with the account and the timestamp..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Events (viewed) are logged with the account and the timestamp..

2. Observe the result and verify the full behavior: Events (viewed) are logged with the account and the timestamp..

**Expected Result:** Events (viewed) are logged with the account and the timestamp. — delivered exactly as documented.

**Priority:** High

### TC-COR-7-02-020 — Rule: The employee sync is audit-logged with the account and the timestamp.

**Type:** Positive

**Covers:** 7.2.2 → The employee sync is audit-logged with the account and the timestamp.; Rule: The employee sync is audit-logged with the account and the timestamp..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: The employee sync is audit-logged with the account and the timestamp..

2. Observe the result and verify the full behavior: The employee sync is audit-logged with the account and the timestamp..

**Expected Result:** The employee sync is audit-logged with the account and the timestamp. — delivered exactly as documented.

**Priority:** High


## 7.2.3 Offboarding Sync

### TC-COR-7-02-021 — Leaver detection from the HRIS

**Type:** Positive

**Covers:** 7.2.3 → Leaver detection from the HRIS; Rule: Deactivation happens within one sync cycle.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Leaver detection from the HRIS.

2. Observe the result and verify the full behavior: Leaver detection from the HRIS.

**Expected Result:** Leaver detection from the HRIS — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-022 — Automatic access deactivation

**Type:** Positive

**Covers:** 7.2.3 → Automatic access deactivation; Rule: Deactivation happens within one sync cycle.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Automatic access deactivation.

2. Observe the result and verify the full behavior: Automatic access deactivation.

**Expected Result:** Automatic access deactivation — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-023 — Seat revocation on offboarding

**Type:** Positive

**Covers:** 7.2.3 → Seat revocation on offboarding; Rule: Deactivation happens within one sync cycle.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Seat revocation on offboarding.

2. Observe the result and verify the full behavior: Seat revocation on offboarding.

**Expected Result:** Seat revocation on offboarding — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-024 — Record preservation

**Type:** Positive

**Covers:** 7.2.3 → Record preservation; Rule: Deactivation happens within one sync cycle.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Record preservation.

2. Observe the result and verify the full behavior: Record preservation.

**Expected Result:** Record preservation — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-025 — Available on web and mobile

**Type:** Positive

**Covers:** 7.2.3 → Available on web and mobile; Rule: Deactivation happens within one sync cycle.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Available on web and mobile.

2. Observe the result and verify the full behavior: Available on web and mobile.

**Expected Result:** Available on web and mobile — delivered exactly as documented.

**Priority:** Critical

### TC-COR-7-02-026 — Event logging (viewed)

**Type:** Positive

**Covers:** 7.2.3 → Event logging (viewed); Rule: Deactivation happens within one sync cycle.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Event logging (viewed).

2. Observe the result and verify the full behavior: Event logging (viewed).

**Expected Result:** Event logging (viewed) — delivered exactly as documented.

**Priority:** Medium

### TC-COR-7-02-027 — Audit logging of the offboarding sync

**Type:** Positive

**Covers:** 7.2.3 → Audit logging of the offboarding sync; Rule: Deactivation happens within one sync cycle.

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Audit logging of the offboarding sync.

2. Observe the result and verify the full behavior: Audit logging of the offboarding sync.

**Expected Result:** Audit logging of the offboarding sync — delivered exactly as documented.

**Priority:** Medium

### TC-COR-7-02-028 — Rule: Deactivation happens within one sync cycle.

**Type:** Positive

**Covers:** 7.2.3 → Deactivation happens within one sync cycle.; Rule: Deactivation happens within one sync cycle..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Deactivation happens within one sync cycle..

2. Observe the result and verify the full behavior: Deactivation happens within one sync cycle..

**Expected Result:** Deactivation happens within one sync cycle. — delivered exactly as documented.

**Priority:** High

### TC-COR-7-02-029 — Rule: Preserved records remain visible in reports but not in the active directory.

**Type:** Positive

**Covers:** 7.2.3 → Preserved records remain visible in reports but not in the active directory.; Rule: Preserved records remain visible in reports but not in the active directory..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Preserved records remain visible in reports but not in the active directory..

2. Observe the result and verify the full behavior: Preserved records remain visible in reports but not in the active directory..

**Expected Result:** Preserved records remain visible in reports but not in the active directory. — delivered exactly as documented.

**Priority:** High

### TC-COR-7-02-030 — Rule: Events (viewed) are logged with the account and the timestamp.

**Type:** Positive

**Covers:** 7.2.3 → Events (viewed) are logged with the account and the timestamp.; Rule: Events (viewed) are logged with the account and the timestamp..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: Events (viewed) are logged with the account and the timestamp..

2. Observe the result and verify the full behavior: Events (viewed) are logged with the account and the timestamp..

**Expected Result:** Events (viewed) are logged with the account and the timestamp. — delivered exactly as documented.

**Priority:** High

### TC-COR-7-02-031 — Rule: The offboarding sync is audit-logged with the account and the timestamp.

**Type:** Positive

**Covers:** 7.2.3 → The offboarding sync is audit-logged with the account and the timestamp.; Rule: The offboarding sync is audit-logged with the account and the timestamp..

**Preconditions:** A Corporate account is active and the Corporate user is in the state required for this behavior.

**Steps:**

1. As a Corporate user, set up the precondition and perform: The offboarding sync is audit-logged with the account and the timestamp..

2. Observe the result and verify the full behavior: The offboarding sync is audit-logged with the account and the timestamp..

**Expected Result:** The offboarding sync is audit-logged with the account and the timestamp. — delivered exactly as documented.

**Priority:** High
