diff --git a/crates/dbx-web/src/routes/app_settings.rs b/crates/dbx-web/src/routes/app_settings.rs index 4aaf7f5193..87f70db26b 100644 --- a/crates/dbx-web/src/routes/app_settings.rs +++ b/crates/dbx-web/src/routes/app_settings.rs @@ -130,9 +130,13 @@ pub async fn load_max_retries(State(state): State>) -> Result>) -> Result, AppError> { +fn sql_file_upload_max_bytes_from_mb(max_mb: u32) -> u64 { + u64::from(max_mb).saturating_mul(1024 * 1024) +} + +pub async fn load_sql_file_upload_max_bytes(State(state): State>) -> Result, AppError> { let max_mb = state.app.storage.load_sql_file_upload_max_mb().await.map_err(AppError::from)?; - Ok(Json(max_mb.saturating_mul(1024 * 1024))) + Ok(Json(sql_file_upload_max_bytes_from_mb(max_mb))) } #[derive(Deserialize)] @@ -182,7 +186,12 @@ fn decrypt_config_payload(payload: &EncryptedConfigPayload, passphrase: &str) -> #[cfg(test)] mod tests { - use super::{decrypt_config_payload, EncryptedConfigPayload}; + use super::{decrypt_config_payload, sql_file_upload_max_bytes_from_mb, EncryptedConfigPayload}; + + #[test] + fn preserves_four_gib_sql_file_upload_limit() { + assert_eq!(sql_file_upload_max_bytes_from_mb(4096), 4096_u64 * 1024 * 1024); + } fn exported_browser_payload() -> EncryptedConfigPayload { EncryptedConfigPayload {