Skip to content

Commit

Permalink
Setup test extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
pawurb committed Jan 24, 2024
1 parent 954d6d8 commit 2519dbd
Showing 1 changed file with 20 additions and 3 deletions.
23 changes: 20 additions & 3 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ pub enum PgExtrasError {
#[error("Both $DATABASE_URL and $PG_EXTRAS_DATABASE_URL are not set")]
MissingConfigVars(),
#[error("Cannot connect to database")]
ConnectionError(),
DbConnectionError(),
#[error("Unknown pg-extras error")]
Unknown(String),
}
Expand All @@ -330,7 +330,7 @@ async fn get_rows<T: Tabular>(query: &str) -> Result<Vec<T>, PgExtrasError> {
.await
{
Ok(pool) => pool,
Err(_) => return Err(PgExtrasError::ConnectionError()),
Err(_) => return Err(PgExtrasError::DbConnectionError()),
};

Ok(match sqlx::query(query).fetch_all(&pool).await {
Expand All @@ -349,8 +349,24 @@ fn db_url() -> Result<String, PgExtrasError> {
mod tests {
use super::*;

async fn setup() -> Result<(), Box<dyn std::error::Error>> {
let pool = PgPoolOptions::new()
.max_connections(5)
.connect(db_url()?.as_str())
.await?;

for extension in ["sslinfo", "pg_stat_statements", "pg_buffercache"] {
let query = format!("CREATE EXTENSION IF NOT EXISTS {};", extension);
sqlx::query(&query).execute(&pool).await?;
}

Ok(())
}

#[tokio::test]
async fn it_works() -> Result<(), PgExtrasError> {
async fn it_works() -> Result<(), Box<dyn std::error::Error>> {
setup().await?;

render_table(cache_hit(None).await?);
render_table(bloat().await?);
render_table(blocking(None).await?);
Expand Down Expand Up @@ -384,6 +400,7 @@ mod tests {
render_table(ssl_used().await?);
render_table(connections().await?);
render_table(db_settings().await?);

Ok(())
}
}

0 comments on commit 2519dbd

Please sign in to comment.