@@ -832,4 +832,43 @@ public function testGetScreenFields()
832832
833833 $ this ->assertEquals ($ expectedFields , $ jsonResponse );
834834 }
835+
836+ public function testGetAllTaskTypes ()
837+ {
838+ $ request = ProcessRequest::factory ()->create ();
839+
840+ $ taskAttributes = [
841+ 'process_request_id ' => $ request ->id ,
842+ 'process_id ' => $ request ->process_id ,
843+ 'element_type ' => 'task ' ,
844+ 'user_id ' => $ this ->user ->id ,
845+ ];
846+
847+ $ userTask = ProcessRequestToken::factory ()->create ($ taskAttributes );
848+ $ scriptTask = ProcessRequestToken::factory ()->create ([...$ taskAttributes , 'element_type ' => 'scriptTask ' ]);
849+ $ gatewayTask = ProcessRequestToken::factory ()->create ([...$ taskAttributes , 'element_type ' => 'gateway ' ]);
850+
851+ $ queryString = http_build_query ([
852+ 'pmql ' => "process_request_id = {$ request ->id }" ,
853+ ]);
854+ $ response = $ this ->apiCall ('GET ' , '/tasks? ' . $ queryString );
855+
856+ // Assert default behavior: only human tasks
857+ $ response = $ response ->json ();
858+ $ this ->assertCount (1 , $ response ['data ' ]);
859+ $ this ->assertEquals ($ userTask ->id , $ response ['data ' ][0 ]['id ' ]);
860+
861+ $ queryString = http_build_query ([
862+ 'pmql ' => "process_request_id = {$ request ->id }" ,
863+ 'all_tasks ' => 1 ,
864+ ]);
865+ $ response = $ this ->apiCall ('GET ' , '/tasks? ' . $ queryString );
866+
867+ // Assert all tasks returned
868+ $ response = $ response ->json ();
869+ $ this ->assertCount (3 , $ response ['data ' ]);
870+ $ this ->assertEquals ($ userTask ->id , $ response ['data ' ][0 ]['id ' ]);
871+ $ this ->assertEquals ($ scriptTask ->id , $ response ['data ' ][1 ]['id ' ]);
872+ $ this ->assertEquals ($ gatewayTask ->id , $ response ['data ' ][2 ]['id ' ]);
873+ }
835874}
0 commit comments