# 1. Ticketing System — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: ticketing_system.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 Multi-channel Support (Email, Chat, Phone) | Channel: the channel (the channel of the support, the type, the ticket, the date) | TC-SA-21-01-001 |
| 1.1 Multi-channel Support (Email, Chat, Phone) | Channel type: the type (the type of the channel, e.g., the email, the chat, the phone) | TC-SA-21-01-002 |
| 1.1 Multi-channel Support (Email, Chat, Phone) | Ticket: the ticket (the ticket, the user, the channel, the date) | TC-SA-21-01-003 |
| 1.1 Multi-channel Support (Email, Chat, Phone) | Channel count: the count (the count of the tickets by channel) | TC-SA-21-01-004 |
| 1.1 Multi-channel Support (Email, Chat, Phone) | Channel status: the status (the open, the pending, the resolved) | TC-SA-21-01-005 |
| 1.1 Multi-channel Support (Email, Chat, Phone) | Channel period: the period (the period of the tickets, e.g., the daily, the weekly, the monthly) | TC-SA-21-01-006 |
| 1.1 Multi-channel Support (Email, Chat, Phone) | Channel view: the view (the channels, the types, the tickets, the counts, the period) | TC-SA-21-01-007 |
| 1.1 Multi-channel Support (Email, Chat, Phone) | Audit logging of the multi-channel support configuration | TC-SA-21-01-008 |
| 1.1 Multi-channel Support (Email, Chat, Phone) | Rule: the channel is the medium (the channel of the support, the type, the ticket, the date); the channel is the access | TC-SA-21-01-001 |
| 1.1 Multi-channel Support (Email, Chat, Phone) | Rule: the channel type is the category (the type of the channel, e.g., the email, the chat, the phone); the type is the segment | TC-SA-21-01-002 |
| 1.1 Multi-channel Support (Email, Chat, Phone) | Rule: the ticket is the request (the ticket, the user, the channel, the date); the ticket is the issue | TC-SA-21-01-003 |
| 1.1 Multi-channel Support (Email, Chat, Phone) | Rule: the channel status is the state (the open, the pending, the resolved); the status is the control | TC-SA-21-01-005 |
| 1.1 Multi-channel Support (Email, Chat, Phone) | Rule: the channels are available (the channels, the types, the tickets, the counts, the period); the access is managed | TC-SA-21-01-007 |
| 1.1 Multi-channel Support (Email, Chat, Phone) | Rule: multi-channel support configuration is audit-logged with the channel, type, and timestamp | TC-SA-21-01-008 |
| 1.2 Priority-based Ticket Routing | Routing: the routing (the routing, the ticket, the priority, the agent, the date) | TC-SA-21-01-009 |
| 1.2 Priority-based Ticket Routing | Ticket: the ticket (the ticket, the user, the priority, the date) | TC-SA-21-01-010 |
| 1.2 Priority-based Ticket Routing | Priority: the priority (the priority of the ticket, e.g., the low, the medium, the high, the urgent) | TC-SA-21-01-011 |
| 1.2 Priority-based Ticket Routing | Agent: the agent (the agent, the name, the routing) | TC-SA-21-01-012 |
| 1.2 Priority-based Ticket Routing | Routing rule: the rule (the rule of the routing, the priority, the agent) | TC-SA-21-01-013 |
| 1.2 Priority-based Ticket Routing | Routing status: the status (the routed, the assigned, the resolved) | TC-SA-21-01-014 |
| 1.2 Priority-based Ticket Routing | Routing view: the view (the routings, the tickets, the priorities, the agents, the dates) | TC-SA-21-01-015 |
| 1.2 Priority-based Ticket Routing | Audit logging of the ticket routing | TC-SA-21-01-016 |
| 1.2 Priority-based Ticket Routing | Rule: the routing is the assignment (the routing, the ticket, the priority, the agent, the date); the routing is the dispatch | TC-SA-21-01-009 |
| 1.2 Priority-based Ticket Routing | Rule: the ticket is the request (the ticket, the user, the priority, the date); the ticket is the issue | TC-SA-21-01-010 |
| 1.2 Priority-based Ticket Routing | Rule: the priority is the level (the priority of the ticket, e.g., the low, the medium, the high, the urgent); the priority is the rank | TC-SA-21-01-011 |
| 1.2 Priority-based Ticket Routing | Rule: the routing rule is the logic (the rule of the routing, the priority, the agent); the rule is the policy | TC-SA-21-01-013 |
| 1.2 Priority-based Ticket Routing | Rule: the ticket is routed (the routings, the tickets, the priorities, the agents, the dates); the assignment is managed | TC-SA-21-01-015 |
| 1.2 Priority-based Ticket Routing | Rule: ticket routing is audit-logged with the routing, priority, and timestamp | TC-SA-21-01-016 |
| 1.3 SLA Tracking | SLA: the SLA (the SLA, the ticket, the deadline, the status, the date) | TC-SA-21-01-017 |
| 1.3 SLA Tracking | Ticket: the ticket (the ticket, the user, the SLA, the date) | TC-SA-21-01-018 |
| 1.3 SLA Tracking | SLA deadline: the deadline (the deadline of the SLA, the date) | TC-SA-21-01-019 |
| 1.3 SLA Tracking | SLA status: the status (the met, the at-risk, the breached) | TC-SA-21-01-020 |
| 1.3 SLA Tracking | SLA count: the count (the count of the SLAs by status) | TC-SA-21-01-021 |
| 1.3 SLA Tracking | SLA period: the period (the period of the SLAs, e.g., the daily, the weekly, the monthly) | TC-SA-21-01-022 |
| 1.3 SLA Tracking | SLA view: the view (the SLAs, the tickets, the deadlines, the statuses, the period) | TC-SA-21-01-023 |
| 1.3 SLA Tracking | Audit logging of the SLA tracking | TC-SA-21-01-024 |
| 1.3 SLA Tracking | Rule: the SLA is the commitment (the SLA, the ticket, the deadline, the status, the date); the SLA is the promise | TC-SA-21-01-017 |
| 1.3 SLA Tracking | Rule: the ticket is the request (the ticket, the user, the SLA, the date); the ticket is the issue | TC-SA-21-01-018 |
| 1.3 SLA Tracking | Rule: the SLA deadline is the limit (the deadline of the SLA, the date); the deadline is the time | TC-SA-21-01-019 |
| 1.3 SLA Tracking | Rule: the SLA status is the state (the met, the at-risk, the breached); the status is the control | TC-SA-21-01-020 |
| 1.3 SLA Tracking | Rule: the SLAs are visible (the SLAs, the tickets, the deadlines, the statuses, the period); the tracking is managed | TC-SA-21-01-023 |
| 1.3 SLA Tracking | Rule: SLA tracking is audit-logged with the SLA, status, and timestamp | TC-SA-21-01-024 |
| 1.4 Knowledge Base Integration | Knowledge base: the knowledge base (the article, the topic, the link, the date) | TC-SA-21-01-025 |
| 1.4 Knowledge Base Integration | Article: the article (the article, the topic, the link, the date) | TC-SA-21-01-026 |
| 1.4 Knowledge Base Integration | Topic: the topic (the topic of the article, the category) | TC-SA-21-01-027 |
| 1.4 Knowledge Base Integration | Article link: the link (the link of the article, the ticket, the date) | TC-SA-21-01-028 |
| 1.4 Knowledge Base Integration | Article count: the count (the count of the articles) | TC-SA-21-01-029 |
| 1.4 Knowledge Base Integration | Article status: the status (the active, the archived) | TC-SA-21-01-030 |
| 1.4 Knowledge Base Integration | Article view: the view (the articles, the topics, the links, the counts) | TC-SA-21-01-031 |
| 1.4 Knowledge Base Integration | Audit logging of the knowledge base integration | TC-SA-21-01-032 |
| 1.4 Knowledge Base Integration | Rule: the knowledge base is the reference (the article, the topic, the link, the date); the knowledge base is the library | TC-SA-21-01-025 |
| 1.4 Knowledge Base Integration | Rule: the article is the content (the article, the topic, the link, the date); the article is the unit | TC-SA-21-01-026 |
| 1.4 Knowledge Base Integration | Rule: the topic is the category (the topic of the article, the category); the topic is the segment | TC-SA-21-01-027 |
| 1.4 Knowledge Base Integration | Rule: the article link is the connection (the link of the article, the ticket, the date); the link is the reference | TC-SA-21-01-028 |
| 1.4 Knowledge Base Integration | Rule: the knowledge base is integrated (the articles, the topics, the links, the counts); the link is managed | TC-SA-21-01-031 |
| 1.4 Knowledge Base Integration | Rule: knowledge base integration is audit-logged with the article, topic, and timestamp | TC-SA-21-01-032 |
| 1.5 Ticket Escalation Workflow | Escalation: the escalation (the escalation, the ticket, the level, the agent, the date) | TC-SA-21-01-033 |
| 1.5 Ticket Escalation Workflow | Ticket: the ticket (the ticket, the user, the escalation, the date) | TC-SA-21-01-034 |
| 1.5 Ticket Escalation Workflow | Escalation level: the level (the level of the escalation, e.g., the level 1, the level 2, the level 3) | TC-SA-21-01-035 |
| 1.5 Ticket Escalation Workflow | Escalation agent: the agent (the agent, the name, the escalation) | TC-SA-21-01-036 |
| 1.5 Ticket Escalation Workflow | Escalation trigger: the trigger (the trigger of the escalation, e.g., the SLA breach, the priority) | TC-SA-21-01-037 |
| 1.5 Ticket Escalation Workflow | Escalation status: the status (the escalated, the resolved) | TC-SA-21-01-038 |
| 1.5 Ticket Escalation Workflow | Escalation view: the view (the escalations, the tickets, the levels, the agents, the dates) | TC-SA-21-01-039 |
| 1.5 Ticket Escalation Workflow | Audit logging of the ticket escalation | TC-SA-21-01-040 |
| 1.5 Ticket Escalation Workflow | Rule: the escalation is the upgrade (the escalation, the ticket, the level, the agent, the date); the escalation is the promotion | TC-SA-21-01-033 |
| 1.5 Ticket Escalation Workflow | Rule: the ticket is the request (the ticket, the user, the escalation, the date); the ticket is the issue | TC-SA-21-01-034 |
| 1.5 Ticket Escalation Workflow | Rule: the escalation level is the rank (the level of the escalation, e.g., the level 1, the level 2, the level 3); the level is the tier | TC-SA-21-01-035 |
| 1.5 Ticket Escalation Workflow | Rule: the escalation trigger is the condition (the trigger of the escalation, e.g., the SLA breach, the priority); the trigger is the rule | TC-SA-21-01-037 |
| 1.5 Ticket Escalation Workflow | Rule: the ticket is escalated (the escalations, the tickets, the levels, the agents, the dates); the upgrade is managed | TC-SA-21-01-039 |
| 1.5 Ticket Escalation Workflow | Rule: ticket escalation is audit-logged with the escalation, level, and timestamp | TC-SA-21-01-040 |

## 1.1 Multi-channel Support (Email, Chat, Phone)

### TC-SA-21-01-001 — Channel: the channel (the channel of the support, the type, the ticket, the date); the channel is the access
**Type:** Positive
**Covers:** 1.1 → Channel: the channel (the channel of the support, the type, the ticket, the date); Rule: the channel is the medium (the channel of the support, the type, the ticket, the date); the channel is the access
**Preconditions:** Super Admin is logged in.
**Steps:**
1. Open Customer Support Management → Ticketing System → Multi-channel Support.
2. Configure the channel: the channel (the channel of the support, the type, the ticket, the date) — verify the channel is the medium.
3. Verify the channel shows the type, the ticket, and the date.
4. Save the channel — verify it appears in the channel list and is available for support.
**Expected Result:** The channel is configured — the channel of the support, the type, the ticket, and the date are the access.
**Priority:** Critical

### TC-SA-21-01-002 — Channel type: the type (the type of the channel, e.g., the email, the chat, the phone); the type is the segment
**Type:** Positive
**Covers:** 1.1 → Channel type: the type (the type of the channel, e.g., the email, the chat, the phone); Rule: the channel type is the category (the type of the channel, e.g., the email, the chat, the phone); the type is the segment
**Preconditions:** Channels of email, chat, and phone types exist.
**Steps:**
1. Select the channel type: the type (the type of the channel, e.g., the email, the chat, the phone) — verify the channel type is the category.
2. Verify each channel shows its type.
3. Verify channels can be filtered by type.
**Expected Result:** The channel type is selected — the type of the channel (the email, the chat, the phone) is the segment.
**Priority:** High

### TC-SA-21-01-003 — Ticket: the ticket (the ticket, the user, the channel, the date); the ticket is the issue
**Type:** Positive
**Covers:** 1.1 → Ticket: the ticket (the ticket, the user, the channel, the date); Rule: the ticket is the request (the ticket, the user, the channel, the date); the ticket is the issue
**Preconditions:** A user has submitted a support request via email.
**Steps:**
1. View the ticket: the ticket (the ticket, the user, the channel, the date) — verify the ticket is the request.
2. Verify the ticket shows the user, the channel, and the date.
3. Verify the ticket is linked to the correct channel and user.
**Expected Result:** The ticket is shown — the ticket, the user, the channel, and the date are the issue.
**Priority:** High

### TC-SA-21-01-004 — Channel count: the count (the count of the tickets by channel); the count is the measure
**Type:** Edge
**Covers:** 1.1 → Channel count: the count (the count of the tickets by channel)
**Preconditions:** Tickets exist across email, chat, and phone channels; a channel with zero tickets (zero-count edge) is also prepared.
**Steps:**
1. View the channel count: the count (the count of the tickets by channel) — verify the count is the measure.
2. Verify the count for each channel matches the actual number of tickets in that channel.
3. Check the zero-ticket channel — verify it shows a count of 0 (no error, no negative value).
**Expected Result:** The channel count is shown — the count of the tickets by channel is the measure; zero-ticket channels show 0 without error.
**Priority:** High

### TC-SA-21-01-005 — Channel status: the status (the open, the pending, the resolved); the status is the control
**Type:** Positive
**Covers:** 1.1 → Channel status: the status (the open, the pending, the resolved); Rule: the channel status is the state (the open, the pending, the resolved); the status is the control
**Preconditions:** Tickets with open, pending, and resolved statuses exist.
**Steps:**
1. View the channel status: the status (the open, the pending, the resolved) — verify the channel status is the state.
2. Move a ticket from open to pending — verify the status updates.
3. Move it to resolved — verify the status updates and the ticket is no longer actionable.
**Expected Result:** The channel status is shown — the open, the pending, and the resolved are the control.
**Priority:** High

### TC-SA-21-01-006 — Channel period: the period (the period of the tickets, e.g., the daily, the weekly, the monthly); the period is the scope
**Type:** Positive
**Covers:** 1.1 → Channel period: the period (the period of the tickets, e.g., the daily, the weekly, the monthly)
**Preconditions:** Tickets exist across multiple days, weeks, and months.
**Steps:**
1. Set the channel period: the period (the period of the tickets, e.g., the daily, the weekly, the monthly) — verify the period is the scope.
2. Switch between daily, weekly, and monthly — verify the ticket data updates for each period.
3. Verify the period boundaries are correct (no tickets from outside the period included).
**Expected Result:** The channel period is set — the period of the tickets (the daily, the weekly, the monthly) is the scope.
**Priority:** High

### TC-SA-21-01-007 — Channel view: the view (the channels, the types, the tickets, the counts, the period); the access is managed
**Type:** Positive
**Covers:** 1.1 → Channel view: the view (the channels, the types, the tickets, the counts, the period); Rule: the channels are available (the channels, the types, the tickets, the counts, the period); the access is managed
**Preconditions:** Multiple channels with tickets exist.
**Steps:**
1. View the channels: the view (the channels, the types, the tickets, the counts, the period) — verify the channels are available.
2. Verify each channel shows the type, the tickets, the counts, and the period.
3. Verify the access is managed (configure, filter, view).
**Expected Result:** The channels are viewed — the channels, the types, the tickets, the counts, and the period are visible; the access is managed.
**Priority:** High

### TC-SA-21-01-008 — Multi-channel support configuration is audit-logged with the channel, type, and timestamp
**Type:** Positive
**Covers:** 1.1 → Audit logging of the multi-channel support configuration; Rule: multi-channel support configuration is audit-logged with the channel, type, and timestamp
**Preconditions:** Super Admin has configured a channel.
**Steps:**
1. Open the audit trail and filter by "multi-channel support".
2. Verify entries show the channel, the type, and the timestamp.
**Expected Result:** The multi-channel support configuration is audit-logged with the channel, type, and timestamp.
**Priority:** Critical

## 1.2 Priority-based Ticket Routing

### TC-SA-21-01-009 — Routing: the routing (the routing, the ticket, the priority, the agent, the date); the routing is the dispatch
**Type:** Positive
**Covers:** 1.2 → Routing: the routing (the routing, the ticket, the priority, the agent, the date); Rule: the routing is the assignment (the routing, the ticket, the priority, the agent, the date); the routing is the dispatch
**Preconditions:** Super Admin is logged in; tickets and agents exist.
**Steps:**
1. Open Customer Support Management → Ticketing System → Priority-based Ticket Routing.
2. Route the ticket: the routing (the routing, the ticket, the priority, the agent, the date) — verify the routing is the assignment.
3. Verify the routing shows the ticket, the priority, the agent, and the date.
4. Save the routing — verify the ticket is assigned to the agent.
**Expected Result:** The routing is created — the routing, the ticket, the priority, the agent, and the date are the dispatch.
**Priority:** Critical

### TC-SA-21-01-010 — Ticket: the ticket (the ticket, the user, the priority, the date); the ticket is the issue
**Type:** Positive
**Covers:** 1.2 → Ticket: the ticket (the ticket, the user, the priority, the date); Rule: the ticket is the request (the ticket, the user, the priority, the date); the ticket is the issue
**Preconditions:** Multiple tickets with different priorities exist.
**Steps:**
1. Select the ticket: the ticket (the ticket, the user, the priority, the date) — verify the ticket is the request.
2. Verify the ticket shows the user, the priority, and the date.
3. Verify the ticket is routed based on its priority.
**Expected Result:** The ticket is selected — the ticket, the user, the priority, and the date are the issue.
**Priority:** High

### TC-SA-21-01-011 — Priority: the priority (the priority of the ticket, e.g., the low, the medium, the high, the urgent); the priority is the rank
**Type:** Positive
**Covers:** 1.2 → Priority: the priority (the priority of the ticket, e.g., the low, the medium, the high, the urgent); Rule: the priority is the level (the priority of the ticket, e.g., the low, the medium, the high, the urgent); the priority is the rank
**Preconditions:** Tickets with low, medium, high, and urgent priorities exist.
**Steps:**
1. Set the priority: the priority (the priority of the ticket, e.g., the low, the medium, the high, the urgent) — verify the priority is the level.
2. Verify each ticket shows its priority.
3. Verify urgent tickets are routed before low-priority tickets.
**Expected Result:** The priority is set — the priority of the ticket (the low, the medium, the high, the urgent) is the rank.
**Priority:** High

### TC-SA-21-01-012 — Agent: the agent (the agent, the name, the routing); the agent is the handler
**Type:** Edge
**Covers:** 1.2 → Agent: the agent (the agent, the name, the routing)
**Preconditions:** Multiple agents exist; an agent who is offline/unavailable (unavailable-agent edge) is also prepared.
**Steps:**
1. Select the agent: the agent (the agent, the name, the routing) — verify the agent is the handler.
2. Verify the agent shows the name and the routing.
3. Route a ticket to the offline agent — verify the system handles it (re-routes to an available agent or queues it, no ticket lost).
**Expected Result:** The agent is selected — the agent, the name, and the routing are the handler; tickets for unavailable agents are never lost.
**Priority:** High

### TC-SA-21-01-013 — Routing rule: the rule (the rule of the routing, the priority, the agent); the rule is the policy
**Type:** Positive
**Covers:** 1.2 → Routing rule: the rule (the rule of the routing, the priority, the agent); Rule: the routing rule is the logic (the rule of the routing, the priority, the agent); the rule is the policy
**Preconditions:** Routing rules mapping priorities to agents are configured.
**Steps:**
1. Set the routing rule: the rule (the rule of the routing, the priority, the agent) — verify the routing rule is the logic.
2. Verify the rule maps each priority to the correct agent.
3. Create a new ticket with a priority — verify it is auto-routed per the rule.
**Expected Result:** The routing rule is set — the rule of the routing, the priority, and the agent are the policy.
**Priority:** High

### TC-SA-21-01-014 — Routing status: the status (the routed, the assigned, the resolved); the status is the state
**Type:** Positive
**Covers:** 1.2 → Routing status: the status (the routed, the assigned, the resolved)
**Preconditions:** Tickets with routed, assigned, and resolved statuses exist.
**Steps:**
1. View the routing status: the status (the routed, the assigned, the resolved) — verify the routing status is the state.
2. Verify a routed ticket becomes assigned when the agent picks it up.
3. Verify an assigned ticket becomes resolved when the agent completes it.
**Expected Result:** The routing status is shown — the routed, the assigned, and the resolved are the state.
**Priority:** High

### TC-SA-21-01-015 — Routing view: the view (the routings, the tickets, the priorities, the agents, the dates); the assignment is managed
**Type:** Positive
**Covers:** 1.2 → Routing view: the view (the routings, the tickets, the priorities, the agents, the dates); Rule: the ticket is routed (the routings, the tickets, the priorities, the agents, the dates); the assignment is managed
**Preconditions:** Multiple routings exist.
**Steps:**
1. View the routings: the view (the routings, the tickets, the priorities, the agents, the dates) — verify the ticket is routed.
2. Verify each routing shows the ticket, the priority, the agent, and the date.
3. Verify the assignment is managed (create, view, track).
**Expected Result:** The routings are viewed — the routings, the tickets, the priorities, the agents, and the dates are visible; the assignment is managed.
**Priority:** High

### TC-SA-21-01-016 — Ticket routing is audit-logged with the routing, priority, and timestamp
**Type:** Positive
**Covers:** 1.2 → Audit logging of the ticket routing; Rule: ticket routing is audit-logged with the routing, priority, and timestamp
**Preconditions:** Super Admin has routed a ticket.
**Steps:**
1. Open the audit trail and filter by "ticket routing".
2. Verify entries show the routing, the priority, and the timestamp.
**Expected Result:** The ticket routing is audit-logged with the routing, priority, and timestamp.
**Priority:** Critical

## 1.3 SLA Tracking

### TC-SA-21-01-017 — SLA: the SLA (the SLA, the ticket, the deadline, the status, the date); the SLA is the promise
**Type:** Positive
**Covers:** 1.3 → SLA: the SLA (the SLA, the ticket, the deadline, the status, the date); Rule: the SLA is the commitment (the SLA, the ticket, the deadline, the status, the date); the SLA is the promise
**Preconditions:** Super Admin is logged in; tickets with SLAs exist.
**Steps:**
1. Open Customer Support Management → Ticketing System → SLA Tracking.
2. Track the SLA: the SLA (the SLA, the ticket, the deadline, the status, the date) — verify the SLA is the commitment.
3. Verify the SLA shows the ticket, the deadline, the status, and the date.
4. Verify the SLA is linked to the correct ticket.
**Expected Result:** The SLA is tracked — the SLA, the ticket, the deadline, the status, and the date are the promise.
**Priority:** Critical

### TC-SA-21-01-018 — Ticket: the ticket (the ticket, the user, the SLA, the date); the ticket is the issue
**Type:** Positive
**Covers:** 1.3 → Ticket: the ticket (the ticket, the user, the SLA, the date); Rule: the ticket is the request (the ticket, the user, the SLA, the date); the ticket is the issue
**Preconditions:** Multiple tickets with SLAs exist.
**Steps:**
1. Select the ticket: the ticket (the ticket, the user, the SLA, the date) — verify the ticket is the request.
2. Verify the ticket shows the user, the SLA, and the date.
3. Verify the SLA is correctly associated with the ticket.
**Expected Result:** The ticket is selected — the ticket, the user, the SLA, and the date are the issue.
**Priority:** High

### TC-SA-21-01-019 — SLA deadline: the deadline (the deadline of the SLA, the date); the deadline is the time
**Type:** Positive
**Covers:** 1.3 → SLA deadline: the deadline (the deadline of the SLA, the date); Rule: the SLA deadline is the limit (the deadline of the SLA, the date); the deadline is the time
**Preconditions:** SLAs with different deadlines exist.
**Steps:**
1. View the SLA deadline: the deadline (the deadline of the SLA, the date) — verify the SLA deadline is the limit.
2. Verify each SLA shows its deadline date.
3. Verify the deadline is calculated correctly from the ticket creation time.
**Expected Result:** The SLA deadline is shown — the deadline of the SLA and the date are the time.
**Priority:** High

### TC-SA-21-01-020 — SLA status: the status (the met, the at-risk, the breached); the status is the control
**Type:** Edge
**Covers:** 1.3 → SLA status: the status (the met, the at-risk, the breached); Rule: the SLA status is the state (the met, the at-risk, the breached); the status is the control
**Preconditions:** SLAs in met, at-risk, and breached states exist; an SLA approaching its deadline (at-risk boundary edge) is also prepared.
**Steps:**
1. View the SLA status: the status (the met, the at-risk, the breached) — verify the SLA status is the state.
2. Wait for the at-risk SLA to pass its deadline without resolution — verify it transitions to breached automatically.
3. Resolve a breached SLA — verify the status updates to met (or resolved) and the breach is recorded.
**Expected Result:** The SLA status is shown — the met, the at-risk, and the breached are the control; transitions happen automatically at the correct boundaries.
**Priority:** High

### TC-SA-21-01-021 — SLA count: the count (the count of the SLAs by status); the count is the measure
**Type:** Positive
**Covers:** 1.3 → SLA count: the count (the count of the SLAs by status)
**Preconditions:** SLAs with met, at-risk, and breached statuses exist.
**Steps:**
1. View the SLA count: the count (the count of the SLAs by status) — verify the count is the measure.
2. Verify the count for each status matches the actual number of SLAs in that status.
3. Verify the total count equals the sum of all status counts.
**Expected Result:** The SLA count is shown — the count of the SLAs by status is the measure.
**Priority:** High

### TC-SA-21-01-022 — SLA period: the period (the period of the SLAs, e.g., the daily, the weekly, the monthly); the period is the scope
**Type:** Positive
**Covers:** 1.3 → SLA period: the period (the period of the SLAs, e.g., the daily, the weekly, the monthly)
**Preconditions:** SLAs exist across multiple days, weeks, and months.
**Steps:**
1. Set the SLA period: the period (the period of the SLAs, e.g., the daily, the weekly, the monthly) — verify the period is the scope.
2. Switch between daily, weekly, and monthly — verify the SLA data updates for each period.
3. Verify the period boundaries are correct.
**Expected Result:** The SLA period is set — the period of the SLAs (the daily, the weekly, the monthly) is the scope.
**Priority:** High

### TC-SA-21-01-023 — SLA view: the view (the SLAs, the tickets, the deadlines, the statuses, the period); the tracking is managed
**Type:** Positive
**Covers:** 1.3 → SLA view: the view (the SLAs, the tickets, the deadlines, the statuses, the period); Rule: the SLAs are visible (the SLAs, the tickets, the deadlines, the statuses, the period); the tracking is managed
**Preconditions:** Multiple SLAs exist.
**Steps:**
1. View the SLAs: the view (the SLAs, the tickets, the deadlines, the statuses, the period) — verify the SLAs are visible.
2. Verify each SLA shows the ticket, the deadline, the status, and the period.
3. Verify the tracking is managed (view, filter, track).
**Expected Result:** The SLAs are viewed — the SLAs, the tickets, the deadlines, the statuses, and the period are visible; the tracking is managed.
**Priority:** High

### TC-SA-21-01-024 — SLA tracking is audit-logged with the SLA, status, and timestamp
**Type:** Positive
**Covers:** 1.3 → Audit logging of the SLA tracking; Rule: SLA tracking is audit-logged with the SLA, status, and timestamp
**Preconditions:** Super Admin has tracked an SLA.
**Steps:**
1. Open the audit trail and filter by "SLA tracking".
2. Verify entries show the SLA, the status, and the timestamp.
**Expected Result:** The SLA tracking is audit-logged with the SLA, status, and timestamp.
**Priority:** Critical

## 1.4 Knowledge Base Integration

### TC-SA-21-01-025 — Knowledge base: the knowledge base (the article, the topic, the link, the date); the knowledge base is the library
**Type:** Positive
**Covers:** 1.4 → Knowledge base: the knowledge base (the article, the topic, the link, the date); Rule: the knowledge base is the reference (the article, the topic, the link, the date); the knowledge base is the library
**Preconditions:** Super Admin is logged in; articles exist.
**Steps:**
1. Open Customer Support Management → Ticketing System → Knowledge Base Integration.
2. Integrate the knowledge base: the knowledge base (the article, the topic, the link, the date) — verify the knowledge base is the reference.
3. Verify the knowledge base shows the article, the topic, the link, and the date.
4. Verify the knowledge base is accessible from the ticket view.
**Expected Result:** The knowledge base is integrated — the article, the topic, the link, and the date are the library.
**Priority:** Critical

### TC-SA-21-01-026 — Article: the article (the article, the topic, the link, the date); the article is the unit
**Type:** Positive
**Covers:** 1.4 → Article: the article (the article, the topic, the link, the date); Rule: the article is the content (the article, the topic, the link, the date); the article is the unit
**Preconditions:** Multiple articles exist.
**Steps:**
1. Select the article: the article (the article, the topic, the link, the date) — verify the article is the content.
2. Verify the article shows the topic, the link, and the date.
3. Verify the article is linked to the correct topic.
**Expected Result:** The article is selected — the article, the topic, the link, and the date are the unit.
**Priority:** High

### TC-SA-21-01-027 — Topic: the topic (the topic of the article, the category); the topic is the segment
**Type:** Positive
**Covers:** 1.4 → Topic: the topic (the topic of the article, the category); Rule: the topic is the category (the topic of the article, the category); the topic is the segment
**Preconditions:** Articles with different topics exist.
**Steps:**
1. Select the topic: the topic (the topic of the article, the category) — verify the topic is the category.
2. Verify each article shows its topic.
3. Verify articles can be filtered by topic.
**Expected Result:** The topic is selected — the topic of the article and the category are the segment.
**Priority:** High

### TC-SA-21-01-028 — Article link: the link (the link of the article, the ticket, the date); the link is the reference
**Type:** Edge
**Covers:** 1.4 → Article link: the link (the link of the article, the ticket, the date); Rule: the article link is the connection (the link of the article, the ticket, the date); the link is the reference
**Preconditions:** Articles and tickets exist; a ticket with no matching article (no-match edge) is also prepared.
**Steps:**
1. Link the article: the link (the link of the article, the ticket, the date) — verify the article link is the connection.
2. Verify the link shows the article, the ticket, and the date.
3. Open the no-match ticket — verify the system shows no linked article (empty state, no broken link, no error).
**Expected Result:** The article link is created — the link of the article, the ticket, and the date are the reference; tickets with no matching article show a clean empty state.
**Priority:** High

### TC-SA-21-01-029 — Article count: the count (the count of the articles); the count is the measure
**Type:** Positive
**Covers:** 1.4 → Article count: the count (the count of the articles)
**Preconditions:** Multiple articles exist.
**Steps:**
1. View the article count: the count (the count of the articles) — verify the count is the measure.
2. Verify the count matches the actual number of articles.
3. Add a new article — verify the count increments.
**Expected Result:** The article count is shown — the count of the articles is the measure.
**Priority:** High

### TC-SA-21-01-030 — Article status: the status (the active, the archived); the status is the state
**Type:** Positive
**Covers:** 1.4 → Article status: the status (the active, the archived)
**Preconditions:** Articles with active and archived statuses exist.
**Steps:**
1. View the article status: the status (the active, the archived) — verify the article status is the state.
2. Archive an active article — verify it is no longer shown in the active list.
3. Reactivate it — verify it appears in the active list again.
**Expected Result:** The article status is shown — the active and the archived are the state.
**Priority:** High

### TC-SA-21-01-031 — Article view: the view (the articles, the topics, the links, the counts); the link is managed
**Type:** Positive
**Covers:** 1.4 → Article view: the view (the articles, the topics, the links, the counts); Rule: the knowledge base is integrated (the articles, the topics, the links, the counts); the link is managed
**Preconditions:** Multiple articles with links exist.
**Steps:**
1. View the articles: the view (the articles, the topics, the links, the counts) — verify the knowledge base is integrated.
2. Verify each article shows the topic, the link, and the count.
3. Verify the link is managed (create, view, archive).
**Expected Result:** The articles are viewed — the articles, the topics, the links, and the counts are visible; the link is managed.
**Priority:** High

### TC-SA-21-01-032 — Knowledge base integration is audit-logged with the article, topic, and timestamp
**Type:** Positive
**Covers:** 1.4 → Audit logging of the knowledge base integration; Rule: knowledge base integration is audit-logged with the article, topic, and timestamp
**Preconditions:** Super Admin has integrated the knowledge base.
**Steps:**
1. Open the audit trail and filter by "knowledge base".
2. Verify entries show the article, the topic, and the timestamp.
**Expected Result:** The knowledge base integration is audit-logged with the article, topic, and timestamp.
**Priority:** Critical

## 1.5 Ticket Escalation Workflow

### TC-SA-21-01-033 — Escalation: the escalation (the escalation, the ticket, the level, the agent, the date); the escalation is the promotion
**Type:** Positive
**Covers:** 1.5 → Escalation: the escalation (the escalation, the ticket, the level, the agent, the date); Rule: the escalation is the upgrade (the escalation, the ticket, the level, the agent, the date); the escalation is the promotion
**Preconditions:** Super Admin is logged in; tickets and agents exist.
**Steps:**
1. Open Customer Support Management → Ticketing System → Ticket Escalation Workflow.
2. Escalate the ticket: the escalation (the escalation, the ticket, the level, the agent, the date) — verify the escalation is the upgrade.
3. Verify the escalation shows the ticket, the level, the agent, and the date.
4. Save the escalation — verify the ticket is moved to the higher-level agent.
**Expected Result:** The escalation is created — the escalation, the ticket, the level, the agent, and the date are the promotion.
**Priority:** Critical

### TC-SA-21-01-034 — Ticket: the ticket (the ticket, the user, the escalation, the date); the ticket is the issue
**Type:** Positive
**Covers:** 1.5 → Ticket: the ticket (the ticket, the user, the escalation, the date); Rule: the ticket is the request (the ticket, the user, the escalation, the date); the ticket is the issue
**Preconditions:** Multiple tickets with escalations exist.
**Steps:**
1. Select the ticket: the ticket (the ticket, the user, the escalation, the date) — verify the ticket is the request.
2. Verify the ticket shows the user, the escalation, and the date.
3. Verify the escalation is correctly associated with the ticket.
**Expected Result:** The ticket is selected — the ticket, the user, the escalation, and the date are the issue.
**Priority:** High

### TC-SA-21-01-035 — Escalation level: the level (the level of the escalation, e.g., the level 1, the level 2, the level 3); the level is the tier
**Type:** Positive
**Covers:** 1.5 → Escalation level: the level (the level of the escalation, e.g., the level 1, the level 2, the level 3); Rule: the escalation level is the rank (the level of the escalation, e.g., the level 1, the level 2, the level 3); the level is the tier
**Preconditions:** Escalations at level 1, level 2, and level 3 exist.
**Steps:**
1. Set the escalation level: the level (the level of the escalation, e.g., the level 1, the level 2, the level 3) — verify the escalation level is the rank.
2. Verify each escalation shows its level.
3. Verify a level 1 ticket can be escalated to level 2, and level 2 to level 3.
**Expected Result:** The escalation level is set — the level of the escalation (the level 1, the level 2, the level 3) is the tier.
**Priority:** High

### TC-SA-21-01-036 — Escalation agent: the agent (the agent, the name, the escalation); the agent is the handler
**Type:** Edge
**Covers:** 1.5 → Escalation agent: the agent (the agent, the name, the escalation)
**Preconditions:** Multiple escalation agents exist; a level-3 agent who is unavailable (unavailable-escalation-agent edge) is also prepared.
**Steps:**
1. Select the escalation agent: the agent (the agent, the name, the escalation) — verify the agent is the handler.
2. Verify the agent shows the name and the escalation.
3. Escalate a ticket to the unavailable level-3 agent — verify the system handles it (queues or re-routes, no ticket lost or stuck).
**Expected Result:** The escalation agent is selected — the agent, the name, and the escalation are the handler; escalations to unavailable agents are never lost.
**Priority:** High

### TC-SA-21-01-037 — Escalation trigger: the trigger (the trigger of the escalation, e.g., the SLA breach, the priority); the trigger is the rule
**Type:** Positive
**Covers:** 1.5 → Escalation trigger: the trigger (the trigger of the escalation, e.g., the SLA breach, the priority); Rule: the escalation trigger is the condition (the trigger of the escalation, e.g., the SLA breach, the priority); the trigger is the rule
**Preconditions:** Escalation triggers for SLA breach and priority are configured.
**Steps:**
1. Set the escalation trigger: the trigger (the trigger of the escalation, e.g., the SLA breach, the priority) — verify the escalation trigger is the condition.
2. Trigger an SLA breach — verify the ticket is auto-escalated.
3. Set a high priority on a ticket — verify it is auto-escalated per the trigger.
**Expected Result:** The escalation trigger is set — the trigger of the escalation (the SLA breach, the priority) is the rule.
**Priority:** High

### TC-SA-21-01-038 — Escalation status: the status (the escalated, the resolved); the status is the state
**Type:** Positive
**Covers:** 1.5 → Escalation status: the status (the escalated, the resolved)
**Preconditions:** Escalations with escalated and resolved statuses exist.
**Steps:**
1. View the escalation status: the status (the escalated, the resolved) — verify the escalation status is the state.
2. Verify an escalated ticket becomes resolved when the higher-level agent completes it.
3. Verify the status transition is recorded.
**Expected Result:** The escalation status is shown — the escalated and the resolved are the state.
**Priority:** High

### TC-SA-21-01-039 — Escalation view: the view (the escalations, the tickets, the levels, the agents, the dates); the upgrade is managed
**Type:** Positive
**Covers:** 1.5 → Escalation view: the view (the escalations, the tickets, the levels, the agents, the dates); Rule: the ticket is escalated (the escalations, the tickets, the levels, the agents, the dates); the upgrade is managed
**Preconditions:** Multiple escalations exist.
**Steps:**
1. View the escalations: the view (the escalations, the tickets, the levels, the agents, the dates) — verify the ticket is escalated.
2. Verify each escalation shows the ticket, the level, the agent, and the date.
3. Verify the upgrade is managed (create, view, track).
**Expected Result:** The escalations are viewed — the escalations, the tickets, the levels, the agents, and the dates are visible; the upgrade is managed.
**Priority:** High

### TC-SA-21-01-040 — Ticket escalation is audit-logged with the escalation, level, and timestamp
**Type:** Positive
**Covers:** 1.5 → Audit logging of the ticket escalation; Rule: ticket escalation is audit-logged with the escalation, level, and timestamp
**Preconditions:** Super Admin has escalated a ticket.
**Steps:**
1. Open the audit trail and filter by "ticket escalation".
2. Verify entries show the escalation, the level, and the timestamp.
**Expected Result:** The ticket escalation is audit-logged with the escalation, level, and timestamp.
**Priority:** Critical
