| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <?php
- namespace Tests\Feature;
- use App\Models\Dictionary\Area;
- use App\Models\Dictionary\District;
- use App\Models\Responsible;
- use App\Models\Role;
- use App\Models\User;
- use Illuminate\Foundation\Testing\RefreshDatabase;
- use Tests\TestCase;
- class ResponsibleControllerTest extends TestCase
- {
- use RefreshDatabase;
- protected $seed = true;
- private User $adminUser;
- protected function setUp(): void
- {
- parent::setUp();
- $this->adminUser = User::factory()->create(['role' => Role::ADMIN]);
- }
- public function test_responsibles_index_filters_by_area_name(): void
- {
- $district = District::factory()->create();
- $matchingResponsible = Responsible::query()->create([
- 'name' => 'Иван Иванов',
- 'phone' => '+79990000001',
- 'post' => 'Куратор',
- ]);
- $otherResponsible = Responsible::query()->create([
- 'name' => 'Петр Петров',
- 'phone' => '+79990000002',
- 'post' => 'Куратор',
- ]);
- Area::factory()->create([
- 'district_id' => $district->id,
- 'name' => 'Тверской',
- 'responsible_id' => $matchingResponsible->id,
- ]);
- Area::factory()->create([
- 'district_id' => $district->id,
- 'name' => 'Арбат',
- 'responsible_id' => $otherResponsible->id,
- ]);
- $response = $this->actingAs($this->adminUser)
- ->get(route('responsible.index', [
- 'filters' => ['area_name' => 'Тверской'],
- ]));
- $response->assertOk();
- $response->assertSee('Иван Иванов');
- $response->assertDontSee('Петр Петров');
- }
- public function test_responsible_area_filter_values_are_loaded_from_view(): void
- {
- $district = District::factory()->create();
- $responsible = Responsible::query()->create([
- 'name' => 'Иван Иванов',
- 'phone' => '+79990000001',
- 'post' => 'Куратор',
- ]);
- Area::factory()->create([
- 'district_id' => $district->id,
- 'name' => 'Тверской',
- 'responsible_id' => $responsible->id,
- ]);
- $response = $this->actingAs($this->adminUser)
- ->getJson(route('getFilters', [
- 'table' => 'responsibles',
- 'column' => 'area_name',
- ]));
- $response->assertOk();
- $response->assertJsonFragment(['Тверской']);
- }
- public function test_responsible_show_uses_nav_context_back_url(): void
- {
- $responsible = Responsible::query()->create([
- 'name' => 'Иван Иванов',
- 'phone' => '+79990000001',
- 'post' => 'Куратор',
- ]);
- $response = $this->actingAs($this->adminUser)
- ->withSession([
- 'navigation' => [
- 'responsible-nav' => [
- 'updated_at' => now()->timestamp,
- 'stack' => [
- route('responsible.index', ['page' => 3]),
- ],
- ],
- ],
- ])
- ->get(route('responsible.show', ['responsible' => $responsible, 'nav' => 'responsible-nav']));
- $response->assertOk();
- $response->assertViewHas('nav', 'responsible-nav');
- $response->assertViewHas('back_url', route('responsible.index', ['page' => 3]));
- }
- }
|