planetscale-driver 0.5.1

PlanetScale Serverless Driver
Documentation
use planetscale_driver::QueryBuilder;

#[tokio::test]
pub async fn simple_query() {
    let query = QueryBuilder::new("SELECT * FROM test");

    assert_eq!(format!("{:?}", query), "SELECT * FROM test");
}

#[tokio::test]
pub async fn query_simple_bind() {
    let query = QueryBuilder::new("SELECT * FROM test WHERE id = $0").bind(69);

    assert_eq!(format!("{:?}", query), "SELECT * FROM test WHERE id = 69");
}

#[tokio::test]
pub async fn query_more_advanced_bind() {
    let query = QueryBuilder::new(
        "SELECT *, (SELECT COUNT(*) FROM test2 WHERE other_id = $0) FROM test WHERE id = $0",
    )
    .bind(69);

    assert_eq!(
        format!("{:?}", query),
        "SELECT *, (SELECT COUNT(*) FROM test2 WHERE other_id = 69) FROM test WHERE id = 69"
    );
}

#[tokio::test]
pub async fn query_sql_injection_bind() {
    let query = QueryBuilder::new("SELECT * FROM test WHERE text = \"$0\"")
        .bind("dsa\"; DROP DATABASE; --");

    assert_eq!(
        format!("{:?}", query),
        "SELECT * FROM test WHERE text = \"dsa\\\"; DROP DATABASE; --\""
    );
}