41 lines
1.2 KiB
PHP
41 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Modules\Helpdesk\tests\Feature;
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Livewire\Livewire;
|
|
use Modules\Helpdesk\Livewire\TicketCreate;
|
|
use Modules\Helpdesk\Models\Priority;
|
|
use Modules\Helpdesk\Models\Status;
|
|
use Tests\TestCase;
|
|
|
|
final class HelpdeskTicketTest extends TestCase
|
|
{
|
|
use RefreshDatabase;
|
|
|
|
/** @test */
|
|
public function a_user_can_create_a_ticket(): void
|
|
{
|
|
Status::query()->create(['name' => 'Open', 'slug' => 'open', 'color' => 'blue']);
|
|
Priority::query()->create(['name' => 'Normal', 'slug' => 'normal', 'color' => 'blue']);
|
|
|
|
$user = User::factory()->create();
|
|
|
|
Livewire::actingAs($user)
|
|
->test(TicketCreate::class)
|
|
->set('subject', 'Printer is not working')
|
|
->set('body', 'The office printer is showing an error code and will not print.')
|
|
->set('priority_id', Priority::query()->firstOrFail()->id)
|
|
->call('save')
|
|
->assertHasNoErrors();
|
|
|
|
$this->assertDatabaseHas('helpdesk_tickets', [
|
|
'subject' => 'Printer is not working',
|
|
'user_id' => $user->id,
|
|
]);
|
|
}
|
|
}
|