test(media): 覆盖转码产物查询接口

This commit is contained in:
Zhou Weidong committed 2026-10-22 14:10:15 +08:00
1 parent f66eae5baf
commit 090f149b31
10 files changed
+625

No files matched your search

@@ -0,0 +1,28 @@
# 转码产物查询接口
## 目标
- 媒体维度查询 rendition 与帧图产物。
- 分集维度聚合转码任务、rendition、帧图状态。
- `/admin/dashboard/transcode` 改为明确 VO,OpenAPI 不再出现匿名 Object。
## 设计
1. `MediaTranscodeOutputService` 统一读取媒体、任务、rendition 与 thumbnail。
2. rendition 按高度、视频码率、质量倒序,id 正序保证稳定。
3. thumbnail 优先读取 `thumbnails.vtt`,解析 cue 后分页;无记录返回 `EMPTY`,
记录失败返回 `FAILED`,不把缺产物当服务错误。
4. 分集聚合对不存在、无视频、无媒资、无任务返回明确 status 和空列表。
5. dashboard 使用强类型 queue/failed task VO,保留现有字段语义并补 total。
## TDD
- 先提交媒体有/无产物、不存在、VTT 解析与分页边界测试。
- 再提交接口、VO、聚合服务和 dashboard 类型收敛实现。
- 门禁:`mvn -pl fruitshorts-module-media test`。
## 红线
- 不改 `/app` 契约、specs、ReelShortWeb、Flutter。
- 不改 P1 入队与手动重转逻辑。
- 不启停服务,不操作真机。
+25
View File
@@ -25314,3 +25314,28 @@ $ mvn -pl fruitshorts-admin-api -am test
后台控制器改动连同既有 admin 契约、权限、服务测试全部通过。
未启停服务、未执行数据库迁移、未操作真机。
## 2026-10-22 转码产物查询接口 P2
- 分支:`feature/media-transcode-output-api`
- 基线:`develop` / `origin/develop` = `f66eae5`
- 隔离工作树:`/private/tmp/fruitserver-media-output-api`
- 计划:`docs/plans/2026-10-22-media-transcode-output-api.md`
### TDD 红测
先补媒体清晰度、帧图分页、VTT 解析、后台聚合与 dashboard 强类型契约测试,
生产代码保持未实现。
```text
$ mvn -pl fruitshorts-module-media test
[INFO] Compiling 3 source files with javac [debug release 17] to target/test-classes
[ERROR] MediaTranscodeOutputServiceTest.java:[37,13] 找不到符号
符号: 类 MediaTranscodeOutputService
[INFO] fruitshorts-module-media ........................... FAILURE
[INFO] BUILD FAILURE
```
解读:失败原因正是查询服务尚未实现。`fruitshorts-module-media` 新增
`spring-boot-starter-test` test scope,使指定门禁能实际执行本次单元测试。
下一步实现 VTT 解析、稳定排序、分页和 admin 聚合 VO 后转绿。