From 95ed4908481bf71e0a8f5318064cd9b5350601df Mon Sep 17 00:00:00 2001 From: george-misan Date: Fri, 31 May 2024 12:45:42 +0300 Subject: [PATCH] resolve test failings --- .../models/src/course_instances.rs | 9 ++++++ .../models/src/library/progressing.rs | 31 ++++++++++--------- .../server/tests/study_registry_test.rs | 12 +++---- 3 files changed, 32 insertions(+), 20 deletions(-) diff --git a/services/headless-lms/models/src/course_instances.rs b/services/headless-lms/models/src/course_instances.rs index 43a18d6fb2b0..91b8e39ba23b 100644 --- a/services/headless-lms/models/src/course_instances.rs +++ b/services/headless-lms/models/src/course_instances.rs @@ -921,4 +921,13 @@ mod test { ); tx.rollback().await; } + + #[tokio::test] + async fn gets_course_average_duration_with_empty_database() { + insert_data!(:tx, :user, :org, :course, :instance); + let duration = get_course_average_duration(tx.as_mut(), instance.id) + .await + .unwrap(); + assert!(duration.is_none()) + } } diff --git a/services/headless-lms/models/src/library/progressing.rs b/services/headless-lms/models/src/library/progressing.rs index 62ac5fd90dee..8149e9d1e4d0 100644 --- a/services/headless-lms/models/src/library/progressing.rs +++ b/services/headless-lms/models/src/library/progressing.rs @@ -50,19 +50,23 @@ pub async fn update_automatic_completion_status_and_grant_if_eligible( ) .await?; - let thresholds = suspected_cheaters::get_thresholds_by_id(conn, course_instance_id).await?; - let average_duration_seconds = - course_instances::get_course_average_duration(conn, course_instance_id).await?; + if let Some(thresholds) = suspected_cheaters::get_thresholds_by_id(conn, course_instance_id) + .await + .optional()? + { + let average_duration_seconds = + course_instances::get_course_average_duration(conn, course_instance_id).await?; - check_and_insert_suspected_cheaters( - conn, - user_id, - course_instance_id, - &thresholds, - average_duration_seconds, - completion, - ) - .await?; + check_and_insert_suspected_cheaters( + conn, + user_id, + course_instance_id, + &thresholds, + average_duration_seconds, + completion, + ) + .await?; + } } Ok(()) } @@ -895,6 +899,7 @@ mod tests { use crate::test_helper::*; mod grant_automatic_completion_if_eligible { + use super::*; use crate::{ chapters::NewChapter, course_modules::{ @@ -905,8 +910,6 @@ mod tests { user_exercise_states::{self, ReviewingStage, UserExerciseStateUpdate}, }; - use super::*; - #[tokio::test] async fn grants_automatic_completion_but_no_prerequisite_for_default_module() { insert_data!(:tx); diff --git a/services/headless-lms/server/tests/study_registry_test.rs b/services/headless-lms/server/tests/study_registry_test.rs index 3a7284c0099c..e5d01c477a36 100644 --- a/services/headless-lms/server/tests/study_registry_test.rs +++ b/services/headless-lms/server/tests/study_registry_test.rs @@ -172,7 +172,7 @@ async fn insert_data( ) .await .unwrap(); - let course_module_completion_id = headless_lms_models::course_module_completions::insert( + let course_module_completion = headless_lms_models::course_module_completions::insert( conn, PKeyPolicy::Generate, &NewCourseModuleCompletion { @@ -194,12 +194,12 @@ async fn insert_data( .unwrap(); headless_lms_models::course_module_completions::update_prerequisite_modules_completed( conn, - course_module_completion_id, + course_module_completion.id, true, ) .await .unwrap(); - let course_module_completion_2_id = headless_lms_models::course_module_completions::insert( + let course_module_completion_2 = headless_lms_models::course_module_completions::insert( conn, PKeyPolicy::Generate, &NewCourseModuleCompletion { @@ -221,7 +221,7 @@ async fn insert_data( .unwrap(); headless_lms_models::course_module_completions::update_prerequisite_modules_completed( conn, - course_module_completion_2_id, + course_module_completion_2.id, true, ) .await @@ -231,7 +231,7 @@ async fn insert_data( org, course.id, course_module.id, - course_module_completion_id, - course_module_completion_2_id, + course_module_completion.id, + course_module_completion_2.id, ) }