* Main ticket index renders scalar agent_name. * Ticket index still eager-loads user, owner, agent. * Ticket show comments no longer eager-load fake owner / agent relations. * Updated the conflicting regression tests.
27 lines
1.2 KiB
PHP
27 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Modules\Helpdesk\Tests\Feature;
|
|
|
|
use Tests\TestCase;
|
|
|
|
final class TicketIndexUserNPlusOneFilesTest extends TestCase
|
|
{
|
|
public function test_ticket_index_uses_scalar_agent_name_and_eager_loads_ticket_users(): void
|
|
{
|
|
$component = file_get_contents(dirname(__DIR__, 2) . '/Livewire/TicketIndex.php');
|
|
$view = file_get_contents(dirname(__DIR__, 2) . '/Resources/views/livewire/ticket-index.blade.php');
|
|
|
|
self::assertIsString($component);
|
|
self::assertIsString($view);
|
|
|
|
self::assertStringContainsString("->select('helpdesk_tickets.*')", $component);
|
|
self::assertStringContainsString("'agent_name' => User::query()", $component);
|
|
self::assertStringContainsString("->whereColumn('users.id', 'helpdesk_tickets.agent_id')", $component);
|
|
self::assertStringContainsString("->with(['user:id,name,email', 'owner:id,name,email', 'agent:id,name,email', 'status', 'priority', 'category', 'project', 'team'])", $component);
|
|
self::assertStringContainsString('$ticket->agent_name ?? \'Unassigned\'', $view);
|
|
self::assertStringNotContainsString('$ticket->agent?->name ?? \'Unassigned\'', $view);
|
|
}
|
|
}
|