25 lines
721 B
Rust
25 lines
721 B
Rust
use sea_orm::{Database, DatabaseConnection};
|
|
|
|
pub mod entities;
|
|
|
|
pub(crate) async fn establish_connection(
|
|
url: &str,
|
|
) -> Result<DatabaseConnection, Box<dyn std::error::Error + Send + Sync>> {
|
|
Database::connect(url)
|
|
.await
|
|
.map_err(|e| format!("Failed to connect to database: {}", e).into())
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::establish_connection;
|
|
|
|
#[tokio::test]
|
|
async fn establish_connection_fails_for_invalid_url_scheme() {
|
|
let result = establish_connection("invalid://not-a-db").await;
|
|
assert!(result.is_err());
|
|
let msg = result.err().map(|e| e.to_string()).unwrap_or_default();
|
|
assert!(msg.contains("Failed to connect to database"));
|
|
}
|
|
}
|