Crates.io | nafta |
lib.rs | nafta |
version | 0.1.3 |
source | src |
created_at | 2020-05-07 12:39:15.307114 |
updated_at | 2020-05-10 08:29:39.502257 |
description | Creates temporary SQLite database for testing using diesel. |
homepage | |
repository | https://github.com/fbucek/nafta |
max_upload_size | |
id | 238551 |
size | 12,529 |
Creates temporary SQLite database for testing using diesel.
[dev-dependencies]
nafta = "0.1"
// 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());
// 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());
}
}
See build batch for windows: .github/install-sqlite.bat