seedLookupData(); $user = $this->user(['name' => 'Ticket Browser User']); $subject = 'Browser created helpdesk ticket ' . uniqid(); $this->browse(function (Browser $browser) use ($user, $fixtures, $subject): void { $browser->loginAs($user) ->visitRoute('helpdesk.tickets.create') ->waitFor('@helpdesk-ticket-create', 10) ->assertSee('Create ticket') ->type('@ticket-subject', $subject); $this->setHelpdeskEditor( $browser, 'ticket-body-editor', 'This browser ticket proves the form saves correctly.', ); $this->setHelpdeskSelect($browser, 'board_id', $fixtures['board']->id); $this->setHelpdeskSelect($browser, 'priority_id', $fixtures['high']->id); $this->setHelpdeskSelect($browser, 'category_id', $fixtures['category']->id); $this->setHelpdeskSelect($browser, 'team_id', $fixtures['team']->id); $this->setHelpdeskSelect($browser, 'project_id', $fixtures['project']->id); $browser->waitFor('@ticket-create-submit', 10) ->press('@ticket-create-submit') ->waitUntilMissing('@helpdesk-ticket-create', 15) ->assertPathIs('/helpdesk/tickets') ->assertSee($subject); $ticket = Ticket::query() ->where('subject', $subject) ->latest('id') ->firstOrFail(); $browser->visitRoute('helpdesk.tickets.show', $ticket) ->waitFor('@helpdesk-ticket-show', 15) ->assertSee($subject) ->assertSee('This browser ticket proves the form saves correctly.'); }); } 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, 'board_id' => $fixtures['board']->id, 'priority_id' => $fixtures['normal']->id, 'category_id' => $fixtures['category']->id, 'team_id' => $fixtures['team']->id, 'project_id' => $fixtures['project']->id, 'subject' => 'Browser response ticket', ]); $parent = Comment::query()->create([ 'ticket_id' => $ticket->id, 'user_id' => $user->id, 'parent_id' => null, 'title' => 'Browser canned response', 'body' => '
Hello Response Browser User
Inserted canned browser response for ' . $ticket->reference . '
', 'is_internal' => false, ]); Comment::query()->create([ 'ticket_id' => $ticket->id, 'user_id' => $user->id, 'parent_id' => $parent->id, 'title' => 'RE: Browser canned response', 'body' => 'Nested browser response', 'is_internal' => false, ]); $this->browse(function (Browser $browser) use ($user, $ticket): void { $browser->loginAs($user) ->visitRoute('helpdesk.tickets.show', ['ticket' => $ticket->getKey()]) ->waitForText('Browser response ticket', 10) ->assertSee('Browser response ticket') ->assertDontSee('UNID') ->assertDontSee('GUID'); }); $this->assertDatabaseHas('helpdesk_comments', [ 'ticket_id' => $ticket->id, 'parent_id' => null, 'body' => 'Hello Response Browser User
Inserted canned browser response for ' . $ticket->reference . '
', ]); $this->assertDatabaseHas('helpdesk_comments', [ 'ticket_id' => $ticket->id, 'parent_id' => $parent->id, 'body' => 'Nested browser response', ]); } private function setHelpdeskEditor(Browser $browser, string $dusk, string $html): void { $encodedDusk = json_encode($dusk, JSON_THROW_ON_ERROR); $encodedHtml = json_encode($html, JSON_THROW_ON_ERROR); $browser->script(<<