2025-10-13 14:57:11 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace Tests\Unit\Actions;
|
|
|
|
|
|
|
|
|
|
use App\Models\Schedule;
|
|
|
|
|
use App\Models\User;
|
|
|
|
|
use DishPlanner\Schedule\Actions\RegenerateScheduleDayAction;
|
|
|
|
|
use DishPlanner\Schedule\Actions\RegenerateScheduleDayForUserAction;
|
|
|
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
|
|
|
use Tests\TestCase;
|
|
|
|
|
use Tests\Traits\DishesTestTrait;
|
|
|
|
|
use Tests\Traits\HasPlanner;
|
|
|
|
|
|
|
|
|
|
class RegenerateScheduleDayActionTest extends TestCase
|
|
|
|
|
{
|
|
|
|
|
use HasPlanner;
|
|
|
|
|
use RefreshDatabase;
|
|
|
|
|
use DishesTestTrait;
|
|
|
|
|
|
2025-12-29 23:36:15 +01:00
|
|
|
protected function setUp(): void
|
|
|
|
|
{
|
|
|
|
|
parent::setUp();
|
|
|
|
|
$this->setUpHasPlanner();
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-13 14:57:11 +02:00
|
|
|
public function test_it_regenerates_for_a_single_schedule(): void
|
|
|
|
|
{
|
|
|
|
|
$planner = $this->planner;
|
|
|
|
|
User::factory()->planner($planner)->count(10)->create();
|
|
|
|
|
$this->generateDishes($planner);
|
|
|
|
|
|
|
|
|
|
$schedule = Schedule::factory()->planner($planner)->create();
|
|
|
|
|
|
|
|
|
|
$this->assertEmpty($schedule->scheduledUserDishes);
|
|
|
|
|
|
|
|
|
|
$mockAction = $this->mock(RegenerateScheduleDayForUserAction::class);
|
|
|
|
|
$mockAction->shouldReceive('execute')->times(10);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
resolve(RegenerateScheduleDayAction::class)->execute($planner, $schedule, true);
|
|
|
|
|
}
|
|
|
|
|
}
|