# 店铺设置 — 测试用例

> **依据：** 《店铺设置功能需求.md》v1.1、《店铺设置技术方案.md》v1.1.1  
> **范围：** 平台 **`GET/PUT /agri/shopSetting`**（**无 shopId**，全平台唯一）；`ShopGlobalConfigServiceImpl`；`GoodsServiceImpl.submitGoods` 读 **全局** Facade  
> **排除：** 逐店 `/{shopId}/settings`（v1.1 已废止）、`biz_shop` 策略字段（v1.1.1 已删除）、子管理员 CRUD、UI 全字段  
> **环境：** RuoYi v3.9.2；`agri:shop:setting`；协作 submit 需商家 Token + `X-Shop-Id`

---

## 用例编号说明

| 前缀 | 类型 | 实现参考 |
|------|------|----------|
| SSS-UT-xxx | 单元测试 | `ShopGlobalConfigServiceImplTest`、`GoodsServiceImplTest` |
| SSS-API-xxx | 接口测试 | `ShopGlobalSettingControllerTest` |
| SSS-UI-xxx | 界面测试 | Playwright · 独立菜单「店铺设置」 |

---

## 一、单元测试

### SSS-UT-001 读取全局配置默认值

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UT-001 |
| **测试项** | `getGlobalSettings` |
| **测试目的** | 验证 SS2、SS5 |
| **预期结果** | `defaultAuditPass=0`；`maxSubAdmin=5` |

### SSS-UT-002 配置缺失时 lazy 初始化

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UT-002 |
| **测试项** | `requireConfig` |
| **测试目的** | 验证首启 |
| **预期结果** | insert 默认行；返回 0/5 |

### SSS-UT-003 defaultAuditPass 非法拒绝

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UT-003 |
| **测试项** | `updateGlobalSettings` |
| **预期结果** | 失败；不 UPDATE |

### SSS-UT-004 maxSubAdmin 边界 1/99 成功，0/100 失败

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UT-004 |
| **测试项** | 校验边界 |
| **预期结果** | 同 SS5 |

### SSS-UT-005 保存全局配置成功

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UT-005 |
| **测试项** | `updateGlobalSettings` |
| **预期结果** | UPDATE `config_id=1` 一次 |

### SSS-UT-006 改全局开关不调用商品批量 UPDATE

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UT-006 |
| **测试项** | 不追溯 SS3 |
| **预期结果** | 不调用 `IGoodsService` 批量改状态 |

### SSS-UT-007 submit 读全局：关→待审核

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UT-007 |
| **测试项** | `submitGoods` + Facade |
| **预期结果** | `goods_status=1`；**不读** shop 行字段 |

### SSS-UT-008 submit 读全局：开→出售中

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UT-008 |
| **测试项** | 同上 |
| **预期结果** | `goods_status=2` |

### SSS-UT-009 改全局后：店 A、店 B submit 结果一致

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UT-009 |
| **测试项** | **针对所有店铺** SS1 |
| **步骤** | 全局开免审 → shopId=10、20 各 submit |
| **预期结果** | 均为出售中 |

### SSS-UT-010 改全局后存量待审不变

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UT-010 |
| **测试项** | 不追溯 |
| **预期结果** | 旧待审仍为 1；新 submit 按新全局 |

---

## 二、接口测试

### SSS-API-001 GET /agri/shopSetting 返回默认

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-API-001 |
| **预期结果** | 200；`0` 和 `5` |

### SSS-API-002 PUT 开启免审 + maxSubAdmin=10

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-API-002 |
| **预期结果** | 200；msg 含「仅对此后新提交上架」 |

### SSS-API-003 PUT 后 GET 持久化

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-API-003 |
| **预期结果** | `1` 和 `10` |

### SSS-API-004 maxSubAdmin=100 失败

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-API-004 |
| **预期结果** | 1～99 校验失败 |

### SSS-API-005 无 shopId 路径（废止旧 API）

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-API-005 |
| **步骤** | 调用 `GET /agri/shop/1/settings` |
| **预期结果** | **404 或不再提供**（v1.1） |

### SSS-API-006 无 setting 权限 403

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-API-006 |
| **预期结果** | 403 |

### SSS-API-007 协作：全局免审后任意店 submit→出售中

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-API-007 |
| **预期结果** | 换 shopId 结果相同 |

### SSS-API-008 协作：全局关审后任意店 submit→待审核

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-API-008 |
| **预期结果** | 商品审核可见 |

---

## 三、界面测试

### SSS-UI-001 独立菜单「店铺设置」可进入

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UI-001 |
| **预期结果** | 非店铺列表行内按钮 |

### SSS-UI-002 页头说明「针对所有店铺」

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UI-002 |
| **预期结果** | 全局文案可见 |

### SSS-UI-003 默认关审、子管理员 5

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UI-003 |

### SSS-UI-004 保存成功 Toast 含新商品生效

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UI-004 |

### SSS-UI-005 无权限不显示菜单

| 要素 | 内容 |
|------|------|
| **用例编号** | SSS-UI-005 |

---

## 四、用例统计

| 类型 | 数量 | 编号 |
|------|------|------|
| UT | 11 | SSS-UT-001～011 |
| API | 8 | SSS-API-001～008 |
| UI | 5 | SSS-UI-001～005 |
| **合计** | **24** | — |

### SS 追溯

| 规则 | 用例 |
|------|------|
| SS1 全局/all shops | UT-009, API-007/008, UI-002 |
| SS2 | UT-001, API-001, UI-003 |
| SS3 | UT-006/010 |
| SS4 | UT-007/008 |
| SS11 | API-002, UI-004 |

---

## 五、修订记录

| 版本 | 说明 |
|------|------|
| **v1.0** | 单店 35 条（已废止路径） |
| **v1.1** | **全局** `/agri/shopSetting`；24 条；废止 `/{shopId}/settings` |

---

*文档版本：v1.1 · 关联《店铺设置功能需求.md》v1.1*
