Skip to content

Commit c1f6d31

Browse files
committed
fix: align MySQL SSL mode aliases
1 parent 2305c59 commit c1f6d31

2 files changed

Lines changed: 24 additions & 4 deletions

File tree

src-tauri/src/pool_manager.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ pub(crate) fn build_connection_key(
110110
}
111111
}
112112

113-
fn build_mysql_options(
113+
pub(crate) fn build_mysql_options(
114114
params: &ConnectionParams,
115115
override_db: Option<&str>,
116116
) -> Result<sqlx::mysql::MySqlConnectOptions, String> {
@@ -139,8 +139,8 @@ fn build_mysql_options(
139139
"disabled" | "disable" => MySqlSslMode::Disabled,
140140
"preferred" | "prefer" => MySqlSslMode::Preferred,
141141
"required" | "require" => MySqlSslMode::Required,
142-
"verify_ca" => MySqlSslMode::VerifyCa,
143-
"verify_identity" => MySqlSslMode::VerifyIdentity,
142+
"verify_ca" | "verify-ca" => MySqlSslMode::VerifyCa,
143+
"verify_identity" | "verify-identity" => MySqlSslMode::VerifyIdentity,
144144
_ => MySqlSslMode::Required,
145145
};
146146
options = options.ssl_mode(ssl_mode);

src-tauri/src/pool_manager_tests.rs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
#[cfg(test)]
22
mod tests {
33
use crate::models::{ConnectionParams, DatabaseSelection};
4-
use crate::pool_manager::{build_connection_key, format_error_chain};
4+
use crate::pool_manager::{build_connection_key, build_mysql_options, format_error_chain};
5+
use sqlx::mysql::MySqlSslMode;
56

67
fn mysql_params(ssl_mode: &str) -> ConnectionParams {
78
ConnectionParams {
@@ -71,6 +72,25 @@ mod tests {
7172
build_connection_key(&disabled, Some("conn-1"))
7273
);
7374
}
75+
76+
#[test]
77+
fn mysql_options_accept_kebab_case_verify_ssl_modes() {
78+
let verify_ca = mysql_params("verify-ca");
79+
let verify_identity = mysql_params("verify-identity");
80+
81+
assert!(matches!(
82+
build_mysql_options(&verify_ca, None)
83+
.unwrap()
84+
.get_ssl_mode(),
85+
MySqlSslMode::VerifyCa
86+
));
87+
assert!(matches!(
88+
build_mysql_options(&verify_identity, None)
89+
.unwrap()
90+
.get_ssl_mode(),
91+
MySqlSslMode::VerifyIdentity
92+
));
93+
}
7494
}
7595

7696
#[cfg(test)]

0 commit comments

Comments
 (0)