# 3.1 Bulk Employee Enrollment — Test Cases

User Type: **Corporate**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: bulk_employee_enrollment.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 |
|---------|--------------------|----------|
| 3.1.1 | CSV and Excel (.xlsx) upload | TC-COR-3-01-001 |
| 3.1.1 | Template download with column mapping | TC-COR-3-01-002 |
| 3.1.1 | Row-level validation (email, name, department) | TC-COR-3-01-003 |
| 3.1.1 | Import report: imported, skipped, failed rows | TC-COR-3-01-004 |
| 3.1.1 | Duplicate detection by email | TC-COR-3-01-005 |
| 3.1.1 | Available on web and mobile | TC-COR-3-01-006 |
| 3.1.1 | Import event logging (viewed) | TC-COR-3-01-007 |
| 3.1.1 | Audit logging of the bulk import | TC-COR-3-01-008 |
| 3.1.1 | Rule: Files are limited to 10,000 rows per import. | TC-COR-3-01-009 |
| 3.1.1 | Rule: Rows with invalid emails are failed, never guessed. | TC-COR-3-01-010 |
| 3.1.1 | Rule: Duplicate emails are skipped and listed in the report. | TC-COR-3-01-011 |
| 3.1.1 | Rule: A failed import leaves no partial state; it is all-or-nothing per row. | TC-COR-3-01-012 |
| 3.1.1 | Rule: Import events (viewed) are logged with the account and the timestamp. | TC-COR-3-01-013 |
| 3.1.1 | Rule: The bulk import is audit-logged with the account and the timestamp. | TC-COR-3-01-014 |
| 3.1.2 | Add-employee form (name, email, department) | TC-COR-3-01-015 |
| 3.1.2 | Seat assignment at creation | TC-COR-3-01-016 |
| 3.1.2 | Welcome email to the new employee | TC-COR-3-01-017 |
| 3.1.2 | Duplicate email check | TC-COR-3-01-018 |
| 3.1.2 | Available on web and mobile | TC-COR-3-01-019 |
| 3.1.2 | Addition event logging (viewed) | TC-COR-3-01-020 |
| 3.1.2 | Audit logging of the manual employee addition | TC-COR-3-01-021 |
| 3.1.2 | Rule: The work email must match the verified corporate domain. | TC-COR-3-01-022 |
| 3.1.2 | Rule: A seat is required at creation; the employee is inactive without one. | TC-COR-3-01-023 |
| 3.1.2 | Rule: Duplicate emails are rejected. | TC-COR-3-01-024 |
| 3.1.2 | Rule: Addition events (viewed) are logged with the account and the timestamp. | TC-COR-3-01-025 |
| 3.1.2 | Rule: The manual employee addition is audit-logged with the account and the timestamp. | TC-COR-3-01-026 |
| 3.1.3 | Seat availability check per enrollment | TC-COR-3-01-027 |
| 3.1.3 | Domain match check | TC-COR-3-01-028 |
| 3.1.3 | Required-field validation | TC-COR-3-01-029 |
| 3.1.3 | Downloadable error report (CSV) | TC-COR-3-01-030 |
| 3.1.3 | Re-run import after fixes | TC-COR-3-01-031 |
| 3.1.3 | Available on web and mobile | TC-COR-3-01-032 |
| 3.1.3 | Validation event logging (viewed) | TC-COR-3-01-033 |
| 3.1.3 | Audit logging of the enrollment validation | TC-COR-3-01-034 |
| 3.1.3 | Rule: Enrollment fails when no seat is available; it never auto-expands the plan. | TC-COR-3-01-035 |
| 3.1.3 | Rule: The error report contains row number, email, and reason. | TC-COR-3-01-036 |
| 3.1.3 | Rule: Events (viewed) are logged with the account and the timestamp. | TC-COR-3-01-037 |
| 3.1.3 | Rule: The enrollment validation is audit-logged with the account and the timestamp. | TC-COR-3-01-038 |


## 3.1.1 CSV/Excel Bulk Import

### TC-COR-3-01-001 — CSV and Excel (.xlsx) upload

**Type:** Positive

**Covers:** 3.1.1 → CSV and Excel (.xlsx) upload; Rule: Files are limited to 10,000 rows per import.

**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: CSV and Excel (.xlsx) upload.

2. Observe the result and verify the full behavior: CSV and Excel (.xlsx) upload.

**Expected Result:** CSV and Excel (.xlsx) upload — delivered exactly as documented.

**Priority:** Critical

### TC-COR-3-01-002 — Template download with column mapping

**Type:** Positive

**Covers:** 3.1.1 → Template download with column mapping; Rule: Files are limited to 10,000 rows per import.

**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: Template download with column mapping.

2. Observe the result and verify the full behavior: Template download with column mapping.

**Expected Result:** Template download with column mapping — delivered exactly as documented.

**Priority:** Critical

### TC-COR-3-01-003 — Row-level validation (email, name, department)

**Type:** Positive

**Covers:** 3.1.1 → Row-level validation (email, name, department); Rule: Files are limited to 10,000 rows per import.

**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: Row-level validation (email, name, department).

2. Observe the result and verify the full behavior: Row-level validation (email, name, department).

**Expected Result:** Row-level validation (email, name, department) — delivered exactly as documented.

**Priority:** Critical

### TC-COR-3-01-004 — Import report: imported, skipped, failed rows

**Type:** Positive

**Covers:** 3.1.1 → Import report: imported, skipped, failed rows; Rule: Files are limited to 10,000 rows per import.

**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: Import report: imported, skipped, failed rows.

2. Observe the result and verify the full behavior: Import report: imported, skipped, failed rows.

**Expected Result:** Import report: imported, skipped, failed rows — delivered exactly as documented.

**Priority:** Critical

### TC-COR-3-01-005 — Duplicate detection by email

**Type:** Positive

**Covers:** 3.1.1 → Duplicate detection by email; Rule: Files are limited to 10,000 rows per import.

**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: Duplicate detection by email.

2. Observe the result and verify the full behavior: Duplicate detection by email.

**Expected Result:** Duplicate detection by email — delivered exactly as documented.

**Priority:** Critical

### TC-COR-3-01-006 — Available on web and mobile

**Type:** Positive

**Covers:** 3.1.1 → Available on web and mobile; Rule: Files are limited to 10,000 rows per import.

**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-3-01-007 — Import event logging (viewed)

**Type:** Positive

**Covers:** 3.1.1 → Import event logging (viewed); Rule: Files are limited to 10,000 rows per import.

**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: Import event logging (viewed).

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

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

**Priority:** Medium

### TC-COR-3-01-008 — Audit logging of the bulk import

**Type:** Positive

**Covers:** 3.1.1 → Audit logging of the bulk import; Rule: Files are limited to 10,000 rows per import.

**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 bulk import.

2. Observe the result and verify the full behavior: Audit logging of the bulk import.

**Expected Result:** Audit logging of the bulk import — delivered exactly as documented.

**Priority:** Medium

### TC-COR-3-01-009 — Rule: Files are limited to 10,000 rows per import.

**Type:** Positive

**Covers:** 3.1.1 → Files are limited to 10,000 rows per import.; Rule: Files are limited to 10,000 rows per import..

**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: Files are limited to 10,000 rows per import..

2. Observe the result and verify the full behavior: Files are limited to 10,000 rows per import..

**Expected Result:** Files are limited to 10,000 rows per import. — delivered exactly as documented.

**Priority:** High

### TC-COR-3-01-010 — Rule: Rows with invalid emails are failed, never guessed.

**Type:** Positive

**Covers:** 3.1.1 → Rows with invalid emails are failed, never guessed.; Rule: Rows with invalid emails are failed, never guessed..

**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: Rows with invalid emails are failed, never guessed..

2. Observe the result and verify the full behavior: Rows with invalid emails are failed, never guessed..

**Expected Result:** Rows with invalid emails are failed, never guessed. — delivered exactly as documented.

**Priority:** High

### TC-COR-3-01-011 — Rule: Duplicate emails are skipped and listed in the report.

**Type:** Positive

**Covers:** 3.1.1 → Duplicate emails are skipped and listed in the report.; Rule: Duplicate emails are skipped and listed in the report..

**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: Duplicate emails are skipped and listed in the report..

2. Observe the result and verify the full behavior: Duplicate emails are skipped and listed in the report..

**Expected Result:** Duplicate emails are skipped and listed in the report. — delivered exactly as documented.

**Priority:** High

### TC-COR-3-01-012 — Rule: A failed import leaves no partial state; it is all-or-nothing per row.

**Type:** Positive

**Covers:** 3.1.1 → A failed import leaves no partial state; it is all-or-nothing per row.; Rule: A failed import leaves no partial state; it is all-or-nothing per row..

**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: A failed import leaves no partial state; it is all-or-nothing per row..

2. Observe the result and verify the full behavior: A failed import leaves no partial state; it is all-or-nothing per row..

**Expected Result:** A failed import leaves no partial state; it is all-or-nothing per row. — delivered exactly as documented.

**Priority:** High

### TC-COR-3-01-013 — Rule: Import events (viewed) are logged with the account and the timestamp.

**Type:** Positive

**Covers:** 3.1.1 → Import events (viewed) are logged with the account and the timestamp.; Rule: Import 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: Import events (viewed) are logged with the account and the timestamp..

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

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

**Priority:** High

### TC-COR-3-01-014 — Rule: The bulk import is audit-logged with the account and the timestamp.

**Type:** Positive

**Covers:** 3.1.1 → The bulk import is audit-logged with the account and the timestamp.; Rule: The bulk import 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 bulk import is audit-logged with the account and the timestamp..

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

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

**Priority:** High


## 3.1.2 Manual Employee Addition

### TC-COR-3-01-015 — Add-employee form (name, email, department)

**Type:** Positive

**Covers:** 3.1.2 → Add-employee form (name, email, department); Rule: The work email must match the verified corporate domain.

**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: Add-employee form (name, email, department).

2. Observe the result and verify the full behavior: Add-employee form (name, email, department).

**Expected Result:** Add-employee form (name, email, department) — delivered exactly as documented.

**Priority:** Critical

### TC-COR-3-01-016 — Seat assignment at creation

**Type:** Positive

**Covers:** 3.1.2 → Seat assignment at creation; Rule: The work email must match the verified corporate domain.

**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 assignment at creation.

2. Observe the result and verify the full behavior: Seat assignment at creation.

**Expected Result:** Seat assignment at creation — delivered exactly as documented.

**Priority:** Critical

### TC-COR-3-01-017 — Welcome email to the new employee

**Type:** Positive

**Covers:** 3.1.2 → Welcome email to the new employee; Rule: The work email must match the verified corporate domain.

**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: Welcome email to the new employee.

2. Observe the result and verify the full behavior: Welcome email to the new employee.

**Expected Result:** Welcome email to the new employee — delivered exactly as documented.

**Priority:** Critical

### TC-COR-3-01-018 — Duplicate email check

**Type:** Positive

**Covers:** 3.1.2 → Duplicate email check; Rule: The work email must match the verified corporate domain.

**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: Duplicate email check.

2. Observe the result and verify the full behavior: Duplicate email check.

**Expected Result:** Duplicate email check — delivered exactly as documented.

**Priority:** Critical

### TC-COR-3-01-019 — Available on web and mobile

**Type:** Positive

**Covers:** 3.1.2 → Available on web and mobile; Rule: The work email must match the verified corporate domain.

**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-3-01-020 — Addition event logging (viewed)

**Type:** Positive

**Covers:** 3.1.2 → Addition event logging (viewed); Rule: The work email must match the verified corporate domain.

**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: Addition event logging (viewed).

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

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

**Priority:** Medium

### TC-COR-3-01-021 — Audit logging of the manual employee addition

**Type:** Positive

**Covers:** 3.1.2 → Audit logging of the manual employee addition; Rule: The work email must match the verified corporate domain.

**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 manual employee addition.

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

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

**Priority:** Medium

### TC-COR-3-01-022 — Rule: The work email must match the verified corporate domain.

**Type:** Positive

**Covers:** 3.1.2 → The work email must match the verified corporate domain.; Rule: The work email must match the verified corporate domain..

**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 work email must match the verified corporate domain..

2. Observe the result and verify the full behavior: The work email must match the verified corporate domain..

**Expected Result:** The work email must match the verified corporate domain. — delivered exactly as documented.

**Priority:** High

### TC-COR-3-01-023 — Rule: A seat is required at creation; the employee is inactive without one.

**Type:** Positive

**Covers:** 3.1.2 → A seat is required at creation; the employee is inactive without one.; Rule: A seat is required at creation; the employee is inactive without one..

**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: A seat is required at creation; the employee is inactive without one..

2. Observe the result and verify the full behavior: A seat is required at creation; the employee is inactive without one..

**Expected Result:** A seat is required at creation; the employee is inactive without one. — delivered exactly as documented.

**Priority:** High

### TC-COR-3-01-024 — Rule: Duplicate emails are rejected.

**Type:** Positive

**Covers:** 3.1.2 → Duplicate emails are rejected.; Rule: Duplicate emails are rejected..

**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: Duplicate emails are rejected..

2. Observe the result and verify the full behavior: Duplicate emails are rejected..

**Expected Result:** Duplicate emails are rejected. — delivered exactly as documented.

**Priority:** High

### TC-COR-3-01-025 — Rule: Addition events (viewed) are logged with the account and the timestamp.

**Type:** Positive

**Covers:** 3.1.2 → Addition events (viewed) are logged with the account and the timestamp.; Rule: Addition 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: Addition events (viewed) are logged with the account and the timestamp..

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

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

**Priority:** High

### TC-COR-3-01-026 — Rule: The manual employee addition is audit-logged with the account and the timestamp.

**Type:** Positive

**Covers:** 3.1.2 → The manual employee addition is audit-logged with the account and the timestamp.; Rule: The manual employee addition 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 manual employee addition is audit-logged with the account and the timestamp..

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

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

**Priority:** High


## 3.1.3 Enrollment Validation & Error Report

### TC-COR-3-01-027 — Seat availability check per enrollment

**Type:** Positive

**Covers:** 3.1.3 → Seat availability check per enrollment; Rule: Enrollment fails when no seat is available; it never auto-expands the plan.

**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 availability check per enrollment.

2. Observe the result and verify the full behavior: Seat availability check per enrollment.

**Expected Result:** Seat availability check per enrollment — delivered exactly as documented.

**Priority:** Critical

### TC-COR-3-01-028 — Domain match check

**Type:** Positive

**Covers:** 3.1.3 → Domain match check; Rule: Enrollment fails when no seat is available; it never auto-expands the plan.

**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: Domain match check.

2. Observe the result and verify the full behavior: Domain match check.

**Expected Result:** Domain match check — delivered exactly as documented.

**Priority:** Critical

### TC-COR-3-01-029 — Required-field validation

**Type:** Positive

**Covers:** 3.1.3 → Required-field validation; Rule: Enrollment fails when no seat is available; it never auto-expands the plan.

**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: Required-field validation.

2. Observe the result and verify the full behavior: Required-field validation.

**Expected Result:** Required-field validation — delivered exactly as documented.

**Priority:** Critical

### TC-COR-3-01-030 — Downloadable error report (CSV)

**Type:** Positive

**Covers:** 3.1.3 → Downloadable error report (CSV); Rule: Enrollment fails when no seat is available; it never auto-expands the plan.

**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: Downloadable error report (CSV).

2. Observe the result and verify the full behavior: Downloadable error report (CSV).

**Expected Result:** Downloadable error report (CSV) — delivered exactly as documented.

**Priority:** Critical

### TC-COR-3-01-031 — Re-run import after fixes

**Type:** Positive

**Covers:** 3.1.3 → Re-run import after fixes; Rule: Enrollment fails when no seat is available; it never auto-expands the plan.

**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: Re-run import after fixes.

2. Observe the result and verify the full behavior: Re-run import after fixes.

**Expected Result:** Re-run import after fixes — delivered exactly as documented.

**Priority:** Critical

### TC-COR-3-01-032 — Available on web and mobile

**Type:** Positive

**Covers:** 3.1.3 → Available on web and mobile; Rule: Enrollment fails when no seat is available; it never auto-expands the plan.

**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-3-01-033 — Validation event logging (viewed)

**Type:** Positive

**Covers:** 3.1.3 → Validation event logging (viewed); Rule: Enrollment fails when no seat is available; it never auto-expands the plan.

**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: Validation event logging (viewed).

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

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

**Priority:** Medium

### TC-COR-3-01-034 — Audit logging of the enrollment validation

**Type:** Positive

**Covers:** 3.1.3 → Audit logging of the enrollment validation; Rule: Enrollment fails when no seat is available; it never auto-expands the plan.

**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 enrollment validation.

2. Observe the result and verify the full behavior: Audit logging of the enrollment validation.

**Expected Result:** Audit logging of the enrollment validation — delivered exactly as documented.

**Priority:** Medium

### TC-COR-3-01-035 — Rule: Enrollment fails when no seat is available; it never auto-expands the plan.

**Type:** Positive

**Covers:** 3.1.3 → Enrollment fails when no seat is available; it never auto-expands the plan.; Rule: Enrollment fails when no seat is available; it never auto-expands the plan..

**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: Enrollment fails when no seat is available; it never auto-expands the plan..

2. Observe the result and verify the full behavior: Enrollment fails when no seat is available; it never auto-expands the plan..

**Expected Result:** Enrollment fails when no seat is available; it never auto-expands the plan. — delivered exactly as documented.

**Priority:** High

### TC-COR-3-01-036 — Rule: The error report contains row number, email, and reason.

**Type:** Positive

**Covers:** 3.1.3 → The error report contains row number, email, and reason.; Rule: The error report contains row number, email, and reason..

**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 error report contains row number, email, and reason..

2. Observe the result and verify the full behavior: The error report contains row number, email, and reason..

**Expected Result:** The error report contains row number, email, and reason. — delivered exactly as documented.

**Priority:** High

### TC-COR-3-01-037 — Rule: Events (viewed) are logged with the account and the timestamp.

**Type:** Positive

**Covers:** 3.1.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-3-01-038 — Rule: The enrollment validation is audit-logged with the account and the timestamp.

**Type:** Positive

**Covers:** 3.1.3 → The enrollment validation is audit-logged with the account and the timestamp.; Rule: The enrollment validation 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 enrollment validation is audit-logged with the account and the timestamp..

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

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

**Priority:** High
