# 测试用例：M1 客户 360° 与主数据

| 项 | 值 |
|---|---|
| 对应 FSD | [M1-客户360与主数据-FSD](M1-客户360与主数据-FSD.md) |
| 对应 PRD | [requirements/M1](../requirements/M1-客户360与主数据.md) |

> 用例按 **正常 / 边界 / 异常** 分类；具体阈值/周期以业务确认值为准（标"待业务"处）。

## 一、覆盖范围
客户入库、Nexus 同步与对账、虚拟合同审批与签署、绑定/联系人、Quota、360° 视图/时间线、Cluster。

## 二、测试用例

### 2.1 客户入库

**正常**

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-001 | 手动入库 | Nexus 存在该账户 | 搜索→选中→选 TAM→确认 | 建档；时间线记"入库(来源=手动)"；角色域按合同点亮 | P0 |
| TC-N-002 | Premium 触发自动入库 | Nexus 新增 Premium 客户 | 轮询触发 | 自动建档；域=TAM | P0 |
| TC-N-003 | 一客户多类合同 | 客户有 Product+PS_Service | 入库 | CSM 与 PS 域同时点亮 | P1 |

**边界**

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-B-001 | 多 TAM 绑定 | 已有 1 TAM | 再绑 1 TAM | 2 TAM 并存、留历史（D-C3） | P1 |

**异常**

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-E-001 | 重复入库 | 客户已在库 | 再次触发 | 提示"已在库，是否补充来源"；合并不重复建 | P0 |
| TC-E-002 | Nexus 查无账户 | — | 搜索不存在的 id | 提示"未找到"，阻断 | P0 |
| TC-E-003 | 手动入库权限不足 | 非 TAM/CSM/Leader/Admin | 打开入库 | 入口不可见/拒绝+审计 | P1 |

### 2.2 Nexus 同步与对账

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-011 | 每日对账无漂移 | 与 Nexus 一致 | 触发对账 | 差异数=0 | P0 |
| TC-E-011 | 对账漂移 | 制造 1 处不一致 | 触发对账 | 差异清单出现该项、不自动覆盖 | P0 |
| TC-E-012 | 同步接口失败 | Nexus 超时 | 触发轮询 | 重试+告警；保留上次快照 | P0 |
| TC-E-013 | 账户失效 | Nexus 标失效 | 同步 | 保留+banner+提醒 TAM，不删（D-C9） | P0 |
| TC-E-014 | 编辑只读字段 | 任意客户 | 尝试改 name | 拒绝；回写 Nexus 次数=0（D-C1） | P0 |

### 2.3 虚拟合同审批与签署

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-N-021 | 强制签署生效 | 审批通过、force_sign=是 | 客户签署 | 三要素留痕；已生效；可立项 | P0 |
| TC-N-022 | 免签直接生效 | force_sign=否（Sponsored） | 审批通过 | 直接已生效 | P1 |
| TC-B-021 | 核定值=档位上限 | ARR 对应上限 | 申请=上限 | 常规核定通过 | P1 |
| TC-E-021 | 未审批即立项 | 合同待审批 | M6 尝试立项 | 阻断 | P0 |
| TC-E-022 | 核定超上限 | 申请>档位上限 | 提交 | 提示需特批；触发更高层节点 | P0 |
| TC-E-023 | 强制签署未签生效 | force_sign=是、未签 | 查生效 | 未生效（生效率=0）；立项阻断 | P0 |
| TC-E-024 | 外部账号签他人合同 | 外部账号 A | 签客户 B 合同 | 拒绝+审计 | P0 |

### 2.4 Quota / 360° / Cluster

| 编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|---|
| TC-E-031 | 手改 Quota 已用 | 有消耗 | 尝试改 used | 拒绝（仅 TimeEntry 汇总，不可手改） | P0 |
| TC-N-031 | 360° 聚合齐全 | 客户数据完整 | 打开 360° | 8/8 区域齐全 | P0 |
| TC-E-032 | 聚合源宕机 | M12 不可用 | 打开 360° | 支持区降级占位，整页可用 | P1 |
| TC-N-032 | Cluster 关联 | 有集群+告警 | 打开 Cluster | 集群列表可见并关联告警/问题 | P1 |

## 三、覆盖率目标
- 关键路径 100%（入库 / 同步对账 / 虚拟合同签署）。
- 异常路径 ≥ 90%（所有 TC-E-*）。
- 只读/额度/签署等硬约束 100% 有对应 TC-E 覆盖（回写=0、生效率=0、used 不可改）。
