test(media): 覆盖转码入队与重转幂等

This commit is contained in:
Zhou Weidong committed 2026-10-22 14:01:26 +08:00
1 parent cd51aabe7e
commit 7e6075a2e9
5 files changed
+435

No files matched your search

+51
View File
@@ -25205,3 +25205,54 @@ dramaTitle/episodeNumber/totalEpisodes 非空、越界页空 list 且 total 保
`limit` 旧 List 兼容均通过;服务层断言 `selectPage`、稳定排序和两批 IN 查询。
未启停服务、未操作真机、未修改客户端。
## 2026-10-22 后台转码链路打通 P1
- 分支:`feature/media-transcode-pipeline`
- 基线:`develop` / `origin/develop` = `cd51aabe`
- 隔离工作树:`/private/tmp/fruitserver-media-pipeline`
- 计划:`docs/plans/2026-10-22-media-transcode-pipeline.md`
### 现状取证
- `/admin/media/upload/complete`:视频完成合并后会调用
`transcodeService.enqueue(assetId, 0L, 0L, sourceUrl)`;图片直接置 ready,不入队。
- 分集创建/更新并保存 `videoUrl`:`EpisodeService` 调用
`EpisodeTranscodeBindingService.bind`,按 objectKey 找到 `media_asset`,
再把 `dramaId/episodeId/sourceUrl` 绑定到任务;未完成任务复用,不重复入队。
- worker:`claimNext` 只认领 `episode_id > 0`;成功后回填媒资 HLS、分集播放地址与时长;
失败超过 3 次写 `FAILED + error_msg`。这些既有链路已由新增测试锁定。
- 实际缺口:后台没有手动触发/重转接口,也没有其幂等测试。
### TDD 红测
先只提交测试,不写生产实现。定向命令:
```text
$ mvn -pl fruitshorts-transcode-worker -am \
-Dtest=MediaServiceTranscodePipelineTest,TranscodeServiceTriggerTest \
-Dsurefire.failIfNoSpecifiedTests=false test
[ERROR] ... MediaServiceTranscodePipelineTest.java:[13,32] 找不到符号
符号: 类 TranscodeTriggerRespVO
[ERROR] ... TranscodeServiceTriggerTest.java:[15,32] 找不到符号
符号: 类 TranscodeTriggerRespVO
[INFO] fruitshorts-transcode-worker ....................... FAILURE
[INFO] BUILD FAILURE
```
解读:失败原因为预期的生产接口尚不存在,不是测试环境或既有代码编译问题。
下一步再实现最小生产代码令红测转绿。
控制器契约红测同样先失败在缺失的响应类型:
```text
$ mvn -pl fruitshorts-admin-api -am \
-Dtest=MediaTranscodeTriggerContractTest \
-Dsurefire.failIfNoSpecifiedTests=false test
[ERROR] MediaTranscodeTriggerContractTest.java:[11,32] 找不到符号
符号: 类 TranscodeTriggerRespVO
[INFO] fruitshorts-admin-api .............................. FAILURE
[INFO] BUILD FAILURE
```
解读:控制器测试已经先于实现落地,现有上传/分集链路未被破坏。