test(backend): 补充改动代码单元测试覆盖率至 85%+
新增 48 个测试用例覆盖修复代码的各分支路径: - subscription_maintenance_queue: nil receiver/task、Stop 幂等、零值参数 (+6) - billing_service: CalculateCostWithConfig、错误传播、SoraImageCost 等 (+12) - timing_wheel_service: Schedule/ScheduleRecurring after Stop (+3) - sora_media_cleanup_service: nil guard、Start/Stop 各分支、timezone (+10) - sora_gateway_service: normalizeSoraMediaURLs、buildSoraContent 等辅助函数 (+17) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -119,6 +119,41 @@ func TestTimingWheelService_Cancel_PreventsExecution(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestTimingWheelService_Schedule_AfterStop_LogsError(t *testing.T) {
|
||||
svc, err := NewTimingWheelService()
|
||||
if err != nil {
|
||||
t.Fatalf("期望 err 为 nil,但得到: %v", err)
|
||||
}
|
||||
svc.Stop()
|
||||
|
||||
// Stop 后调用 Schedule 应走 error 日志路径,不应 panic
|
||||
svc.Schedule("after-stop", 100*time.Millisecond, func() {
|
||||
t.Fatal("不应被执行")
|
||||
})
|
||||
}
|
||||
|
||||
func TestTimingWheelService_ScheduleRecurring_AfterStop_LogsError(t *testing.T) {
|
||||
svc, err := NewTimingWheelService()
|
||||
if err != nil {
|
||||
t.Fatalf("期望 err 为 nil,但得到: %v", err)
|
||||
}
|
||||
svc.Stop()
|
||||
|
||||
// Stop 后调用 ScheduleRecurring 应走 error 日志路径,不应 panic
|
||||
svc.ScheduleRecurring("after-stop-rec", 100*time.Millisecond, func() {
|
||||
t.Fatal("不应被执行")
|
||||
})
|
||||
}
|
||||
|
||||
func TestTimingWheelService_Stop_Idempotent(t *testing.T) {
|
||||
svc, err := NewTimingWheelService()
|
||||
if err != nil {
|
||||
t.Fatalf("期望 err 为 nil,但得到: %v", err)
|
||||
}
|
||||
svc.Stop()
|
||||
svc.Stop() // 第二次调用不应 panic
|
||||
}
|
||||
|
||||
func TestTimingWheelService_ScheduleRecurring_ExecutesMultipleTimes(t *testing.T) {
|
||||
original := newTimingWheel
|
||||
t.Cleanup(func() { newTimingWheel = original })
|
||||
|
||||
Reference in New Issue
Block a user