diff --git a/app/jobs/new_module_mail_job.rb b/app/jobs/new_module_mail_job.rb index c3436bcdc..aac8b9ceb 100644 --- a/app/jobs/new_module_mail_job.rb +++ b/app/jobs/new_module_mail_job.rb @@ -25,7 +25,7 @@ def latest_module def new_module_published? return false unless ModuleRelease.exists? - ModuleRelease.ordered.last.module_position < latest_module.position + ModuleRelease.ordered.last&.module_position.to_i < latest_module.position end # @param mod [Training::Module] diff --git a/spec/models/data_analysis/user_overview_spec.rb b/spec/models/data_analysis/user_overview_spec.rb index 36a7db111..425069d95 100644 --- a/spec/models/data_analysis/user_overview_spec.rb +++ b/spec/models/data_analysis/user_overview_spec.rb @@ -57,40 +57,45 @@ complete_registration_mail_recipients: 1, start_training_mail_recipients: 1, continue_training_mail_recipients: 0, - new_module_mail_recipients: 1, + new_module_mail_recipients: 5, }, ] end - let(:user_1) do - create :user, :registered, module_time_to_completion: { alpha: 1, bravo: 1, charlie: 0 } + let(:user) do + create :user, :registered end let(:user_2) do - create :user, :registered, module_time_to_completion: { alpha: 2, bravo: 0, charlie: 1 } + create :user, :registered, + module_time_to_completion: { alpha: 1, bravo: 1, charlie: 0 } end - let(:release_1) { create(:release) } + let(:user_3) do + create :user, :registered, + module_time_to_completion: { alpha: 2, bravo: 0, charlie: 1 } + end + + let(:release) { create(:release) } before do - # create records for the previously released modules completed by the `new_module_mail_recipients` - create(:module_release, release_id: release_1.id, module_position: 1, name: 'alpha') - create(:module_release, release_id: release_1.id, module_position: 2, name: 'bravo') - create(:module_release, release_id: release_1.id, module_position: 3, name: 'charlie') + create(:module_release, release_id: release.id, module_position: 1, name: 'alpha') + create(:module_release, release_id: release.id, module_position: 2, name: 'bravo') + create(:module_release, release_id: release.id, module_position: 3, name: 'charlie') + + # user#1 + complete_module(alpha, 1.minute) + complete_module(bravo, 1.minute) + complete_module(charlie, 1.minute) - # create notes for the `with_notes` and `without_notes` users - create(:note, user: user_1) + # user#2 user#3 with notes create(:note, user: user_2) + create(:note, user: user_3) - # A user who confirmed their email 4 weeks ago will receive the complete registration mail + # user#4 complete registration notification create(:user, :confirmed, confirmed_at: 4.weeks.ago) - # A registered user who will receive the start training mail + # user#5 start training notification create(:user, :registered, confirmed_at: 4.weeks.ago) - - # This will complete the alpha, bravo and charlie modules for `user` - complete_module(alpha, 1.minute) - complete_module(bravo, 1.minute) - complete_module(charlie, 1.minute) end it_behaves_like 'a data export model'