fix wechat mini program phone parsing
This commit is contained in:
@@ -358,10 +358,13 @@ struct WechatPhoneNumberResponse {
|
||||
#[derive(Debug, Deserialize)]
|
||||
struct WechatPhoneNumberInfo {
|
||||
#[serde(default)]
|
||||
#[serde(alias = "phoneNumber")]
|
||||
phone_number: Option<String>,
|
||||
#[serde(default)]
|
||||
#[serde(alias = "purePhoneNumber")]
|
||||
pure_phone_number: Option<String>,
|
||||
#[serde(default)]
|
||||
#[serde(alias = "countryCode")]
|
||||
country_code: Option<String>,
|
||||
}
|
||||
|
||||
@@ -2109,6 +2112,30 @@ mod tests {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn wechat_phone_number_response_accepts_wechat_camel_case_fields() {
|
||||
let payload = serde_json::from_str::<WechatPhoneNumberResponse>(
|
||||
r#"{
|
||||
"errcode": 0,
|
||||
"errmsg": "ok",
|
||||
"phone_info": {
|
||||
"phoneNumber": "+8613800138000",
|
||||
"purePhoneNumber": "13800138000",
|
||||
"countryCode": "86"
|
||||
}
|
||||
}"#,
|
||||
)
|
||||
.expect("wechat phone number response should parse");
|
||||
let phone_info = payload.phone_info.expect("phone info should exist");
|
||||
|
||||
assert_eq!(phone_info.phone_number.as_deref(), Some("+8613800138000"));
|
||||
assert_eq!(
|
||||
phone_info.pure_phone_number.as_deref(),
|
||||
Some("13800138000")
|
||||
);
|
||||
assert_eq!(phone_info.country_code.as_deref(), Some("86"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn mock_wechat_provider_builds_callback_authorization_url() {
|
||||
let provider = WechatProvider::new(WechatAuthConfig::new(
|
||||
|
||||
Reference in New Issue
Block a user