nafta 0.1.3

Creates temporary SQLite database for testing using diesel.
Documentation
# Nafta

[![Build Status](https://github.com/fbucek/nafta/workflows/build/badge.svg)](https://github.com/fbucek/nafta/actions)
[![Documentation](https://docs.rs/nafta/badge.svg)](https://docs.rs/nafta)
[![crates.io](https://meritbadge.herokuapp.com/nafta)](https://crates.io/crates/nafta)

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 = test_db.db_path.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`