修正 BGM 提示词助手限流用例的断言口径:只承诺客户端可见语义
Project CI / Repository checks (pull_request) Successful in 2m34s
Project CI / Frontend tests (pull_request) Successful in 3m4s
Project CI / Backend tests (pull_request) Successful in 6m32s
Project CI / Native shell tests (pull_request) Successful in 18m5s

- server-rs/crates/api-server/src/editor_background_music_prompt_assist.rs:consecutive_valid_requests_are_not_subject_to_a_feature_rate_limit
  的 assert_eq!(mock.finish().len(), 4) 改为「到达 provider 的请求不少于 4 次」,并在该断言失败时打印捕获到的请求原文

为什么新形态才是它真正承诺的语义:用例名只承诺「连续合法请求不被特性限流」,那是客户端可见口径;
本模块的简化路径本身允许一轮内容重试(同文件 simplification_retries_* 四条用例正是它的定向覆盖),
因此 provider 的精确调用次数是实现细节,把它钉死会让一次合法重试变成假红。
「4 次调用都到达 provider」与原有的 200/非 429 断言都保留:短路、提前拒绝、限流仍然会红。
根因见 #327 问题 2.2(PR #316 run 1950:left: 5, right: 4)。
This commit is contained in:
2026-09-11 16:31:35 +08:00
parent f9e24f4e16
commit 2c9e6fe272
@@ -846,7 +846,17 @@ mod tests {
}
let requests = mock.finish();
assert_eq!(requests.len(), 4);
// 用例名承诺的是「连续合法请求不被特性限流」,所以这里只断言客户端口径:
// 4 次调用都必须真正到达 provider(不少于 4 次),且都成功、没有 429。
// 不再断言「provider 恰好被调用 4 次」——本模块的简化路径本身允许一轮内容重试
// (见 simplification_retries_* 用例),把精确次数钉死会让一次合法重试就变成假红
// #327 / PR #316 run 1950left: 5, right: 4)。精确次数属于实现细节,
// 已由那几条定向重试用例覆盖。
assert!(
requests.len() >= 4,
"4 次客户端调用都必须到达 provider,实际 {} 次:{requests:#?}",
requests.len()
);
for (status, payload) in responses {
assert_eq!(status, StatusCode::OK, "{payload}");
assert_ne!(status, StatusCode::TOO_MANY_REQUESTS);