create tests for model/rower.rs, Closes #32
This commit is contained in:
@ -25,14 +25,69 @@ WHERE id in (SELECT rower_id FROM rower WHERE logbook_id=?)
|
||||
.unwrap()
|
||||
}
|
||||
|
||||
pub async fn create(db: &mut Transaction<'_, Sqlite>, logbook_id: i64, rower_id: i64) {
|
||||
let _ = sqlx::query!(
|
||||
pub async fn create(
|
||||
db: &mut Transaction<'_, Sqlite>,
|
||||
logbook_id: i64,
|
||||
rower_id: i64,
|
||||
) -> Result<(), String> {
|
||||
//TODO: Check if rower is allowed to row
|
||||
|
||||
sqlx::query!(
|
||||
"INSERT INTO rower(logbook_id, rower_id) VALUES (?,?)",
|
||||
logbook_id,
|
||||
rower_id
|
||||
)
|
||||
.execute(db)
|
||||
.await
|
||||
.unwrap();
|
||||
.map_err(|e| return e.to_string())?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use sqlx::SqlitePool;
|
||||
|
||||
use super::Logbook;
|
||||
use crate::model::{rower::Rower, user::User};
|
||||
use crate::testdb;
|
||||
|
||||
#[sqlx::test]
|
||||
fn test_for_log() {
|
||||
let pool = testdb!();
|
||||
|
||||
let logbook = Logbook::find_by_id(&pool, 3).await.unwrap();
|
||||
let rowers = Rower::for_log(&pool, &logbook).await;
|
||||
let expected = User::find_by_id(&pool, 3).await.unwrap();
|
||||
assert_eq!(rowers, vec![expected]);
|
||||
}
|
||||
|
||||
#[sqlx::test]
|
||||
fn test_for_log_none() {
|
||||
let pool = testdb!();
|
||||
|
||||
let logbook = Logbook::find_by_id(&pool, 2).await.unwrap();
|
||||
let rowers = Rower::for_log(&pool, &logbook).await;
|
||||
assert_eq!(rowers, vec![]);
|
||||
}
|
||||
|
||||
#[sqlx::test]
|
||||
fn test_create() {
|
||||
let pool = testdb!();
|
||||
|
||||
let logbook = Logbook::find_by_id(&pool, 3).await.unwrap();
|
||||
|
||||
let mut tx = pool.begin().await.unwrap();
|
||||
Rower::create(&mut tx, logbook.id, 2).await.unwrap();
|
||||
tx.commit().await.unwrap();
|
||||
let rowers = Rower::for_log(&pool, &logbook).await;
|
||||
assert_eq!(
|
||||
rowers,
|
||||
vec![
|
||||
User::find_by_id(&pool, 2).await.unwrap(),
|
||||
User::find_by_id(&pool, 3).await.unwrap()
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user