wip
This commit is contained in:
		
							
								
								
									
										82
									
								
								tests/Unit/SendDailySummaryToSlackTest.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								tests/Unit/SendDailySummaryToSlackTest.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,82 @@ | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace Tests\Unit; | ||||
|  | ||||
| use Illuminate\Foundation\Testing\RefreshDatabase; | ||||
| use Illuminate\Support\Carbon; | ||||
| use Illuminate\Support\Facades\Http; | ||||
| use Tests\TestCase; | ||||
| use Tests\Traits\InteractsWithYearPeriods; | ||||
| use Toby\Eloquent\Models\Holiday; | ||||
| use Toby\Infrastructure\Console\Commands\SendDailySummaryToSlack; | ||||
|  | ||||
| class SendDailySummaryToSlackTest extends TestCase | ||||
| { | ||||
|     use RefreshDatabase; | ||||
|     use InteractsWithYearPeriods; | ||||
|  | ||||
|     protected function setUp(): void | ||||
|     { | ||||
|         parent::setUp(); | ||||
|  | ||||
|         Http::fake(); | ||||
|         $this->createCurrentYearPeriod(); | ||||
|     } | ||||
|  | ||||
|     public function testCommandSendsMessageToSlackIfWeekday(): void | ||||
|     { | ||||
|         $weekDay = Carbon::create(2022, 4, 22); | ||||
|         $this->assertTrue($weekDay->isWeekday()); | ||||
|  | ||||
|         $this->travelTo($weekDay); | ||||
|  | ||||
|         $this->artisan(SendDailySummaryToSlack::class) | ||||
|             ->execute(); | ||||
|  | ||||
|         Http::assertSentCount(1); | ||||
|     } | ||||
|  | ||||
|     public function testCommandDoesntSendIfIsWeekend(): void | ||||
|     { | ||||
|         $weekend = Carbon::create(2022, 4, 23); | ||||
|         $this->assertTrue($weekend->isWeekend()); | ||||
|  | ||||
|         $this->travelTo($weekend); | ||||
|  | ||||
|         $this->artisan(SendDailySummaryToSlack::class) | ||||
|             ->execute(); | ||||
|  | ||||
|         Http::assertNothingSent(); | ||||
|     } | ||||
|  | ||||
|     public function testCommandDoesntSendIfIsHoliday(): void | ||||
|     { | ||||
|         $holiday = Holiday::factory(["date" => Carbon::create(2022, 4, 22)])->create(); | ||||
|  | ||||
|         $this->assertDatabaseHas("holidays", [ | ||||
|             "date" => $holiday->date->toDateString(), | ||||
|         ]); | ||||
|  | ||||
|         $this->travelTo(Carbon::create(2022, 4, 22)); | ||||
|  | ||||
|         $this->artisan(SendDailySummaryToSlack::class) | ||||
|             ->execute(); | ||||
|  | ||||
|         Http::assertNothingSent(); | ||||
|     } | ||||
|  | ||||
|     public function testCommandForceSendsMessageEvenIsWeekendOrHoliday(): void | ||||
|     { | ||||
|         $weekend = Carbon::create(2022, 4, 23); | ||||
|         $this->assertTrue($weekend->isWeekend()); | ||||
|  | ||||
|         $this->travelTo($weekend); | ||||
|  | ||||
|         $this->artisan(SendDailySummaryToSlack::class, ["--force" => true]) | ||||
|             ->execute(); | ||||
|  | ||||
|         Http::assertSentCount(1); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user