Nafta

Build Status Documentation crates.io

Creates temporary SQLite database for testing using diesel.

toml [dev-dependencies] nafta = "0.1"

Minimal example

```rust // Creates empty SQLite database in temporary folder let test_db = nafta::sqlite::TestDb::new();

// Work with the connetion let conn = test_db.conn();

// You can check that database file was really removed let path = testdb.dbpath.clone(); // Necessary to drop anything which can block file drop(conn); // Dropping test_db to check it was really removed drop(test_db); assert!(!path.exists()); ```

Example with migration

```rust // Database extern crate diesel;

[macro_use]

extern crate diesel_migrations;

// This macro from diesel_migrations defines an embedded_migrations module // containing a function named run. This allows the example to be run and // tested without any outside setup of the database. embed_migrations!("migrations");

[cfg(test)]

mod tests {

#[test]
async fn test_get_user() {
    let test_db = nafta::sqlite::TestDb::new();
    let conn = test_db
        .conn()
        .expect("Not possible to get pooled connection");

    // Database migration
    embedded_migrations::run(&conn).expect("Migration not possible to run");

    // Example method to get all users
    let all_user = db::users::get_all_users(test_db.pool);
    assert!(all_user.is_ok());
}

} ```

Building on windows

See build batch for windows: .github/install-sqlite.bat