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])); } }