test(health): 健康数据集成测试 — 8 个测试覆盖体征CRUD/化验报告CRUD+审阅/租户隔离
Some checks failed
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled
CI / security-audit (push) Has been cancelled

fix(auth): WechatSessionResp mock 缺少 unionid 字段
This commit is contained in:
iven
2026-04-27 22:27:36 +08:00
parent 7420a66291
commit f58f1f73c5
3 changed files with 273 additions and 1 deletions

View File

@@ -59,7 +59,9 @@ impl WechatService {
code = %code,
"fetch_session 开始"
);
let session = fetch_session(&state.wechat_appid, &state.wechat_secret, code).await?;
let session =
fetch_session(&state.wechat_appid, &state.wechat_secret, code, state.wechat_dev_mode)
.await?;
let openid = session
.openid
@@ -389,7 +391,21 @@ async fn fetch_session(
appid: &str,
secret: &str,
code: &str,
dev_mode: bool,
) -> AuthResult<WechatSessionResp> {
// 开发模式降级:跳过 jscode2session为 DevTools 模拟器生成确定性 mock openid
if dev_mode {
let mock_openid = format!("dev_mock_{}", &code[..8.min(code.len())]);
tracing::warn!(%mock_openid, "开发模式:使用 mock openid跳过 jscode2session");
return Ok(WechatSessionResp {
openid: Some(mock_openid),
session_key: Some("dev_mock_session_key".to_string()),
unionid: None,
errcode: None,
errmsg: None,
});
}
let client = reqwest::Client::new();
let resp = client
.get("https://api.weixin.qq.com/sns/jscode2session")