test: new assignment

This commit is contained in:
Max Hohlfeld 2025-06-30 13:17:27 +02:00
parent 10e6ba80a2
commit 507bb13a6e
2 changed files with 106 additions and 0 deletions

View File

@ -73,3 +73,84 @@ pub async fn post(
Ok(template.to_response()?)
}
#[cfg(test)]
mod tests {
use brass_db::models::{
Availability, AvailabilityChangeset, Event, EventChangeset, Location, User,
};
use brass_macros::db_test;
use chrono::{NaiveDate, NaiveDateTime};
use fake::{Fake, Faker};
use crate::utils::test_helper::{DbTestContext, NaiveDateTimeExt};
#[db_test]
fn response_produces_updated_template(context: &DbTestContext) {
let app = context.app().await;
Location::create(&context.db_pool, &Faker.fake::<String>(), 1)
.await
.unwrap();
let start = NaiveDateTime::from_ymd_and_hms(2025, 01, 10, 10, 0, 0).unwrap();
let end = NaiveDateTime::from_ymd_and_hms(2025, 01, 10, 20, 0, 0).unwrap();
Event::create(
&context.db_pool,
EventChangeset::create_for_test(start, end),
)
.await
.unwrap();
User::create(&context.db_pool, Faker.fake()).await.unwrap();
// Availability::create(pool, 1, AvailabilityChangeset { time () })
assert!(false)
}
#[db_test]
fn fails_when_availability_does_not_exist(context: &DbTestContext) {
assert!(false)
}
#[db_test]
fn fails_when_event_does_not_exist(context: &DbTestContext) {
assert!(false)
}
#[db_test]
fn fails_when_area_manager_is_different_area_from_event(context: &DbTestContext) {
assert!(false)
}
#[db_test]
fn fails_when_availability_user_not_in_event_area(context: &DbTestContext) {
assert!(false)
}
#[db_test]
fn fails_assignment_time_doesnt_fit_into_availability_time(context: &DbTestContext) {
assert!(false)
}
#[db_test]
fn fails_when_end_time_lies_before_start_time(context: &DbTestContext) {
assert!(false)
}
#[db_test]
fn fails_when_availability_time_already_assigned(context: &DbTestContext) {
assert!(false)
}
#[db_test]
fn fails_when_availability_user_does_not_have_function(context: &DbTestContext) {
assert!(false)
}
#[db_test]
fn fails_when_event_already_has_enough_assignments_for_function(context: &DbTestContext) {
assert!(false)
}
}

View File

@ -1,5 +1,6 @@
mod test_context;
mod test_requests;
use chrono::{NaiveDate, NaiveDateTime};
pub use test_context::{setup, teardown, DbTestContext};
pub use test_requests::RequestConfig;
pub use test_requests::{read_body, test_delete, test_get, test_post, test_put};
@ -27,3 +28,27 @@ macro_rules! assert_mail_snapshot {
pub(crate) use assert_mail_snapshot;
pub(crate) use assert_snapshot;
pub trait NaiveDateTimeExt {
fn from_ymd_and_hms(
year: i32,
month: u32,
day: u32,
hour: u32,
minute: u32,
second: u32,
) -> Option<NaiveDateTime>;
}
impl NaiveDateTimeExt for NaiveDateTime {
fn from_ymd_and_hms(
year: i32,
month: u32,
day: u32,
hour: u32,
minute: u32,
second: u32,
) -> Option<NaiveDateTime> {
NaiveDate::from_ymd_opt(year, month, day)?.and_hms_opt(hour, minute, second)
}
}