From 9cff8cd78948260c4bd949a636a97880a55dacbf Mon Sep 17 00:00:00 2001 From: Guillermo Giuliana Date: Thu, 23 Jan 2020 19:39:22 -0300 Subject: [PATCH] fix ticket search unitary tests --- server/controllers/ticket/search.php | 9 +++++---- server/tests/controllers/ticket/searchTest.php | 9 ++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/server/controllers/ticket/search.php b/server/controllers/ticket/search.php index 8bcb85ca..1f9c37f6 100644 --- a/server/controllers/ticket/search.php +++ b/server/controllers/ticket/search.php @@ -112,6 +112,7 @@ class SearchController extends Controller { 'orderBy' => json_decode(Controller::request('orderBy'),true), 'page' => Controller::request('page'), 'allowedDepartments' => Controller::getLoggedUser()->sharedDepartmentList->toArray(), + 'staffId' => Controller::getLoggedUser()->id ]; @@ -172,7 +173,9 @@ class SearchController extends Controller { if(array_key_exists('unreadStaff',$inputs)) $this->setSeenFilter($inputs['unreadStaff'], $filters); if(array_key_exists('priority',$inputs)) $this->setPriorityFilter($inputs['priority'], $filters); if(array_key_exists('dateRange',$inputs)) $this->setDateFilter($inputs['dateRange'], $filters); - if(array_key_exists('departments',$inputs)) $this->setDepartmentFilter($inputs['departments'],$inputs['allowedDepartments'], $filters); + if(array_key_exists('departments',$inputs) && array_key_exists('allowedDepartments',$inputs) && array_key_exists('staffId',$inputs)){ + $this->setDepartmentFilter($inputs['departments'],$inputs['allowedDepartments'], $inputs['staffId'], $filters); + } if(array_key_exists('authors',$inputs)) $this->setAuthorFilter($inputs['authors'], $filters); if(array_key_exists('query',$inputs)) $this->setStringFilter($inputs['query'], $filters); if($filters != "") $filters = " WHERE " . $filters; @@ -244,8 +247,7 @@ class SearchController extends Controller { } } - private function setDepartmentFilter($departments,$allowedDepartments, &$filters){ - $idStaff = Controller::getLoggedUser()->id ; + private function setDepartmentFilter($departments,$allowedDepartments, $idStaff, &$filters){ if ($filters != "") $filters .= " and "; $validDepartments = $this->generateValidDepartmentList($departments, $allowedDepartments); @@ -265,7 +267,6 @@ class SearchController extends Controller { $filters .= "("; } $filters .= "ticket.author_staff_id = " . $idStaff . ")"; - } private function setAuthorFilter($authors, &$filters){ diff --git a/server/tests/controllers/ticket/searchTest.php b/server/tests/controllers/ticket/searchTest.php index 6f74449a..35e7f574 100644 --- a/server/tests/controllers/ticket/searchTest.php +++ b/server/tests/controllers/ticket/searchTest.php @@ -173,6 +173,7 @@ class SearchControllerTest extends TestCase { $this->assertEquals( $this->searchController->getSQLQuery([ 'departments' => null, + 'staffId' => 1, 'allowedDepartments' => [ [ 'id' => 2 @@ -185,12 +186,13 @@ class SearchControllerTest extends TestCase { ] ] ]), - 'FROM (ticket LEFT JOIN tag_ticket ON tag_ticket.ticket_id = ticket.id LEFT JOIN ticketevent ON ticketevent.ticket_id = ticket.id) WHERE ( ticket.department_id = 2 or ticket.department_id = 1 or ticket.department_id = 3) GROUP BY ticket.id' + 'FROM (ticket LEFT JOIN tag_ticket ON tag_ticket.ticket_id = ticket.id LEFT JOIN ticketevent ON ticketevent.ticket_id = ticket.id) WHERE ( ticket.department_id = 2 or ticket.department_id = 1 or ticket.department_id = 3 or ticket.author_staff_id = 1) GROUP BY ticket.id' ); $this->assertEquals( $this->searchController->getSQLQuery([ 'departments' => [1], + 'staffId' => 1, 'allowedDepartments' => [ [ 'id' => 2 @@ -203,12 +205,13 @@ class SearchControllerTest extends TestCase { ] ] ]), - 'FROM (ticket LEFT JOIN tag_ticket ON tag_ticket.ticket_id = ticket.id LEFT JOIN ticketevent ON ticketevent.ticket_id = ticket.id) WHERE ( ticket.department_id = 1) GROUP BY ticket.id' + 'FROM (ticket LEFT JOIN tag_ticket ON tag_ticket.ticket_id = ticket.id LEFT JOIN ticketevent ON ticketevent.ticket_id = ticket.id) WHERE ( ticket.department_id = 1 or ticket.author_staff_id = 1) GROUP BY ticket.id' ); $this->assertEquals( $this->searchController->getSQLQuery([ 'departments' => [1,2,3], + 'staffId' => 1, 'allowedDepartments' => [ [ 'id' => 2 @@ -221,7 +224,7 @@ class SearchControllerTest extends TestCase { ] ] ]), - 'FROM (ticket LEFT JOIN tag_ticket ON tag_ticket.ticket_id = ticket.id LEFT JOIN ticketevent ON ticketevent.ticket_id = ticket.id) WHERE ( ticket.department_id = 1 or ticket.department_id = 2 or ticket.department_id = 3) GROUP BY ticket.id' + 'FROM (ticket LEFT JOIN tag_ticket ON tag_ticket.ticket_id = ticket.id LEFT JOIN ticketevent ON ticketevent.ticket_id = ticket.id) WHERE ( ticket.department_id = 1 or ticket.department_id = 2 or ticket.department_id = 3 or ticket.author_staff_id = 1) GROUP BY ticket.id' ); }