added jquery and also fixed fontawsome

This commit is contained in:
Mark Gregory
2026-06-15 15:33:54 +01:00
parent 58e5f2e203
commit 0b2d7225cc
150 changed files with 8507 additions and 168 deletions
View File
@@ -0,0 +1,39 @@
<?php
declare(strict_types=1);
namespace Modules\Helpdesk\Tests\Browser;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Laravel\Dusk\Browser;
use Modules\Helpdesk\Tests\Concerns\BuildsHelpdeskFixtures;
use Tests\DuskTestCase;
final class HelpdeskKanbanBrowserTest extends DuskTestCase
{
use BuildsHelpdeskFixtures;
use DatabaseMigrations;
/** @test */
public function kanban_board_is_available_from_helpdesk_module(): void
{
$lookups = $this->seedLookupData();
$user = $this->admin();
$this->ticket([
'owner' => $user,
'status_id' => $lookups['open']->id,
'priority_id' => $lookups['high']->id,
'subject' => 'Kanban browser ticket',
]);
$this->browse(function (Browser $browser) use ($user): void {
$browser->loginAs($user)
->visitRoute('helpdesk.kanban')
->assertPresent('@helpdesk-kanban-board')
->assertSee('Kanban board')
->assertSee('Kanban browser ticket')
->assertPresent('@kanban-column-open');
});
}
}
@@ -0,0 +1,45 @@
<?php
declare(strict_types=1);
namespace Modules\Helpdesk\Tests\Browser;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Laravel\Dusk\Browser;
use Modules\Helpdesk\Tests\Concerns\BuildsHelpdeskFixtures;
use Tests\DuskTestCase;
final class HelpdeskNavigationBrowserTest extends DuskTestCase
{
use BuildsHelpdeskFixtures;
use DatabaseMigrations;
public function test_helpdesk_dashboard_and_main_pages_render_with_professional_headers(): void
{
$this->seedLookupData();
$user = $this->admin(['name' => 'Mark Gregory']);
$this->browse(function (Browser $browser) use ($user): void {
$browser->loginAs($user)
->visitRoute('helpdesk.index')
->waitFor('@helpdesk-dashboard-widget')
->assertSee('Helpdesk dashboard')
->assertSee('Total tickets')
->assertSee('Open tickets')
->assertSee('Closed tickets')
->clickLink('Tickets')
->waitFor('@helpdesk-ticket-index')
->assertSee('Active tickets')
->clickLink('New ticket')
->waitFor('@helpdesk-ticket-create')
->assertSee('Create ticket')
->visitRoute('helpdesk.settings')
->waitFor('@helpdesk-settings-manager')
->assertSee('Support configuration')
->assertSee('Statuses')
->assertSee('Priorities')
->assertSee('Projects')
->assertSee('Workflow');
});
}
}
@@ -0,0 +1,66 @@
<?php
declare(strict_types=1);
namespace Modules\Helpdesk\Tests\Browser;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Laravel\Dusk\Browser;
use Modules\Helpdesk\Tests\Concerns\BuildsHelpdeskFixtures;
use Tests\DuskTestCase;
final class HelpdeskSettingsBrowserTest extends DuskTestCase
{
use BuildsHelpdeskFixtures;
use DatabaseMigrations;
public function test_settings_tabs_expose_lookup_git_and_workflow_setup_areas(): void
{
$this->seedLookupData();
$admin = $this->admin(['name' => 'Settings Admin']);
$this->browse(function (Browser $browser) use ($admin): void {
$browser->loginAs($admin)
->visitRoute('helpdesk.settings')
->waitFor('@helpdesk-settings-manager')
->assertSee('Support configuration')
->assertSee('Statuses')
->assertSee('Priorities')
->assertSee('Categories')
->assertSee('Teams')
->assertSee('Projects')
->assertSee('Git')
->assertSee('Workflow')
->assertSee('Canned')
->assertSee('SLA')
->assertSee('Rules')
->assertSee('Checks')
->assertSee('Tags')
->assertSee('Products')
->press('Git')
->waitForText('Git repositories')
->assertSee('Remote URL')
->press('Workflow')
->waitForText('Workflow messages')
->assertSee('HTML email body')
->press('Canned')
->waitForText('Canned responses')
->assertSee('Reply body')
->press('SLA')
->waitForText('SLA policies')
->assertSee('First response minutes')
->press('Rules')
->waitForText('Email automation rules')
->assertSee('Subject contains')
->press('Checks')
->waitForText('Checklist templates')
->assertSee('Checklist items')
->press('Tags')
->waitForText('Ticket tags')
->assertSee('Colour')
->press('Products')
->waitForText('Products and services')
->assertSee('Release/build');
});
}
}
@@ -0,0 +1,59 @@
<?php
declare(strict_types=1);
namespace Modules\Helpdesk\Tests\Browser;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Laravel\Dusk\Browser;
use Modules\Helpdesk\Tests\Concerns\BuildsHelpdeskFixtures;
use Tests\DuskTestCase;
final class HelpdeskTicketBrowserTest extends DuskTestCase
{
use BuildsHelpdeskFixtures;
use DatabaseMigrations;
public function test_user_can_create_and_view_ticket_in_browser(): void
{
$fixtures = $this->seedLookupData();
$user = $this->user(['name' => 'Ticket Browser User']);
$this->browse(function (Browser $browser) use ($user, $fixtures): void {
$browser->loginAs($user)
->visitRoute('helpdesk.tickets.create')
->waitFor('@helpdesk-ticket-create')
->type('@ticket-subject', 'Browser created helpdesk ticket')
->script("document.querySelector('[dusk=\"ticket-body-editor\"] [contenteditable=\"true\"]').innerHTML = '<p>This browser ticket proves the form saves correctly.</p>'; document.querySelector('[dusk=\"ticket-body-editor\"] [contenteditable=\"true\"]').dispatchEvent(new Event('input', { bubbles: true }));");
$browser->select('@ticket-priority', (string) $fixtures['high']->id)
->select('@ticket-category', (string) $fixtures['category']->id)
->select('@ticket-team', (string) $fixtures['team']->id)
->select('@ticket-project', (string) $fixtures['project']->id)
->press('@save-ticket')
->waitFor('@helpdesk-ticket-show')
->assertSee('Browser created helpdesk ticket')
->assertSee('High')
->assertSee('Support')
->assertSee('Ticket details');
});
}
public function test_user_can_add_nested_response_in_browser(): void
{
$fixtures = $this->seedLookupData();
$user = $this->user(['name' => 'Response Browser User']);
$ticket = $this->ticket(['owner' => $user, 'status_id' => $fixtures['open']->id, 'priority_id' => $fixtures['normal']->id, 'subject' => 'Browser response ticket']);
$this->browse(function (Browser $browser) use ($user, $ticket): void {
$browser->loginAs($user)
->visitRoute('helpdesk.tickets.show', $ticket)
->waitFor('@helpdesk-ticket-show')
->script("document.querySelector('[dusk=\"ticket-comment-editor\"] [contenteditable=\"true\"]').innerHTML = '<p>First browser response</p>'; document.querySelector('[dusk=\"ticket-comment-editor\"] [contenteditable=\"true\"]').dispatchEvent(new Event('input', { bubbles: true }));");
$browser->press('@post-comment')
->waitForText('First browser response')
->assertSee('First browser response');
});
}
}