diff --git a/laravel_app/tests/Unit/Models/ProjectTest.php b/laravel_app/tests/Unit/Models/ProjectTest.php index c8cb531..8dd10af 100644 --- a/laravel_app/tests/Unit/Models/ProjectTest.php +++ b/laravel_app/tests/Unit/Models/ProjectTest.php @@ -212,4 +212,42 @@ public function it_can_create_a_chain_of_batches_that_result_in_a_report() }), ]); } + + /** + * @test + * @dataProvider scheduleDayProvider + */ + public function when_friday_and_first_week_it_should_schedule($date, $day, $result) + { + + + Carbon::setTestNow(Carbon::parse($day)); + $project = Project::factory()->create([ + 'mail_frequency' => 'weekly', + 'mail_day' => 'Friday', + ]); + + $this->assertEquals($result, $project->shouldSchedule()); + } + + public function scheduleDayProvider(){ + return [ + ['date' => '2024-03-01', 'day' => 'Friday', 'result' => true], + ['date' => '2024-03-02', 'day' => 'Saturday', 'result' => false], + ['date' => '2024-03-03', 'day' => 'Sunday', 'result' => false], + ['date' => '2024-03-04', 'day' => 'Monday', 'result' => false], + ['date' => '2024-03-05', 'day' => 'Tuesday', 'result' => false], + ['date' => '2024-03-06', 'day' => 'Wednesday', 'result' => false], + ['date' => '2024-03-07', 'day' => 'Thursday', 'result' => false], + + ['date' => '2024-03-08', 'day' => 'Friday', 'result' => true], + ['date' => '2024-03-09', 'day' => 'Saturday', 'result' => false], + ['date' => '2024-03-10', 'day' => 'Sunday', 'result' => false], + ['date' => '2024-03-11', 'day' => 'Monday', 'result' => false], + ['date' => '2024-03-12', 'day' => 'Tuesday', 'result' => false], + ['date' => '2024-03-13', 'day' => 'Wednesday', 'result' => false], + ['date' => '2024-03-14', 'day' => 'Thursday', 'result' => false], + ]; + + } }