pases 5 ticket updates
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\Helpdesk\Tests\Feature;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class TicketFirstResponseSlaFilesTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* Public replies must satisfy the first-response SLA instead of only incrementing the counter.
|
||||
*/
|
||||
public function test_public_response_updates_first_response_sla_state(): void
|
||||
{
|
||||
$servicePath = dirname(__DIR__, 2).'/Services/SlaService.php';
|
||||
|
||||
self::assertFileExists($servicePath);
|
||||
|
||||
$service = file_get_contents($servicePath);
|
||||
|
||||
self::assertIsString($service);
|
||||
self::assertStringContainsString('public function recordPublicResponse(Ticket $ticket, User $actor): void', $service);
|
||||
self::assertStringContainsString('markFirstResponse($ticket, $respondedAt, $actor)', $service);
|
||||
self::assertStringNotContainsString('(int) $ticket->user_id !== (int) $actor->id', $service);
|
||||
}
|
||||
|
||||
/**
|
||||
* Existing tickets with public comments but a missing first_response_at are repaired on display.
|
||||
*/
|
||||
public function test_ticket_show_synchronises_first_response_from_existing_public_comments(): void
|
||||
{
|
||||
$componentPath = dirname(__DIR__, 2).'/Livewire/TicketShow.php';
|
||||
$servicePath = dirname(__DIR__, 2).'/Services/SlaService.php';
|
||||
|
||||
$component = file_get_contents($componentPath);
|
||||
$service = file_get_contents($servicePath);
|
||||
|
||||
self::assertIsString($component);
|
||||
self::assertIsString($service);
|
||||
self::assertStringContainsString('syncFirstResponseFromComments($ticket)', $component);
|
||||
self::assertStringContainsString("where('is_internal', false)", $service);
|
||||
self::assertStringContainsString("whereNull('tombstoned_at')", $service);
|
||||
}
|
||||
|
||||
/**
|
||||
* The SLA card should show an accurate response state instead of Awaiting response after public replies exist.
|
||||
*/
|
||||
public function test_sla_card_has_clear_responded_and_awaiting_public_reply_states(): void
|
||||
{
|
||||
$viewPath = dirname(__DIR__, 2).'/Resources/views/livewire/ticket-show.blade.php';
|
||||
|
||||
$view = file_get_contents($viewPath);
|
||||
|
||||
self::assertIsString($view);
|
||||
self::assertStringContainsString('Responded', $view);
|
||||
self::assertStringContainsString('Awaiting public reply', $view);
|
||||
self::assertStringNotContainsString("?? 'Awaiting response'", $view);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user