setISODate('2021', '41')); $projectReport = ProjectReport::make([ 'year' => $year, 'week' => $week, ]); $this->assertEquals($expected, $projectReport->weeksAgo()); } public static function weeksAgoProvider() { return [ '1 week ago' => [2021, 40, 1], '2 weeks ago' => [2021, 39, 2], '3 weeks ago' => [2021, 38, 3], ]; } /** * @test */ public function it_can_get_the_full_path_name() { $project = Project::create([ 'name' => 'project_name', 'download_path' => 'project_download_path', ]); $projectReport = $project->reports()->create([ 'name' => 'name', 'year' => 2021, 'week' => 41, 'path' => 'path/doc.pdf', 'status' => 'success', ]); $this->assertEquals(storage_path('app/project_download_path/path/doc.pdf'), $projectReport->getFullPathName()); } /** * @test * @dataProvider reportDateProvider */ public function it_can_return_the_reportDate($expected, $mail_day, $week, $year) { $project = Project::create([ 'name' => 'project_name', 'download_path' => 'project_download_path', 'mail_day' => $mail_day, ]); $projectReport = $project->reports()->create([ 'name' => 'name', 'year' => $year, 'week' => $week, 'path' => 'path/doc.pdf', 'status' => 'success', ]); $this->assertEquals($expected, $projectReport->getReportDate()); } public static function reportDateProvider() { return [ 'monday' => ['2023-12-10', 'monday', 50, 2023], 'tuesday' => ['2023-12-11', 'tuesday', 50, 2023], 'wednesday' => ['2023-12-12', 'wednesday', 50, 2023], 'thursday' => ['2023-12-13', 'thursday', 50, 2023], 'friday' => ['2023-12-14', 'friday', 50, 2023], 'saturday' => ['2023-12-15', 'saturday', 50, 2023], 'sunday' => ['2023-12-16', 'sunday', 50, 2023], ]; } }