diff --git a/database/factories/StepSupervisorFactory.php b/database/factories/StepSupervisorFactory.php new file mode 100644 index 000000000..2efaf5f16 --- /dev/null +++ b/database/factories/StepSupervisorFactory.php @@ -0,0 +1,23 @@ + $this->faker->regexify("/[a-zA-Z]{32}/"), + 'PRO_UID' => function () { + return \ProcessMaker\Model\Process::factory()->create()->PRO_UID; + }, + 'STEP_TYPE_OBJ' => 'DYNAFORM', + 'STEP_UID_OBJ' => function () { + return \ProcessMaker\Model\Dynaform::factory()->create()->DYN_UID; + }, + 'STEP_POSITION' => 1 + ]; + } +} diff --git a/tests/unit/workflow/engine/classes/PmDynaformTest.php b/tests/unit/workflow/engine/classes/PmDynaformTest.php index 7aec26425..db54c550a 100644 --- a/tests/unit/workflow/engine/classes/PmDynaformTest.php +++ b/tests/unit/workflow/engine/classes/PmDynaformTest.php @@ -1,8 +1,11 @@ assertTrue(empty($_SESSION['USER_LOGGED'])); } + + /** + * @test + * @covers PmDynaform::navigationBarForStepsToRevise + */ + public function it_should_test_navigationBarForStepsToRevise() + { + //definition data + $dynaform = Dynaform::factory()->create(); + $inputDocument = InputDocument::factory()->create(); + $application = Application::factory()->create([ + 'PRO_UID' => $dynaform->PRO_UID + ]); + StepSupervisor::factory()->create([ + 'PRO_UID' => $application->PRO_UID, + 'STEP_TYPE_OBJ' => 'DYNAFORM', + 'STEP_UID_OBJ' => $dynaform->DYN_UID + ]); + StepSupervisor::factory()->create([ + 'PRO_UID' => $application->PRO_UID, + 'STEP_TYPE_OBJ' => 'DYNAFORM', + 'STEP_UID_OBJ' => $dynaform->DYN_UID + ]); + StepSupervisor::factory()->create([ + 'PRO_UID' => $application->PRO_UID, + 'STEP_TYPE_OBJ' => 'INPUT_DOCUMENT', + 'STEP_UID_OBJ' => $inputDocument->INP_DOC_UID + ]); + + //assertion + $result = PmDynaform::navigationBarForStepsToRevise($application->APP_UID, $dynaform->DYN_UID, 2); + $this->assertNotEmpty($result); + } } // Dummy function used for the coverture diff --git a/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/CasesTest.php b/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/CasesTest.php index 8067315ff..2b36a3cf6 100644 --- a/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/CasesTest.php +++ b/tests/unit/workflow/engine/src/ProcessMaker/BusinessModel/CasesTest.php @@ -8,13 +8,16 @@ use Illuminate\Support\Facades\DB; use ProcessMaker\Model\AppDelay; use ProcessMaker\Model\Application; use ProcessMaker\Model\Delegation; +use ProcessMaker\Model\Dynaform; use ProcessMaker\Model\Documents; use ProcessMaker\Model\GroupUser; use ProcessMaker\Model\Groupwf; +use ProcessMaker\Model\InputDocument; use ProcessMaker\Model\ListUnassigned; use ProcessMaker\Model\Process; use ProcessMaker\Model\ProcessUser; use ProcessMaker\Model\Step; +use ProcessMaker\Model\StepSupervisor; use ProcessMaker\Model\Task; use ProcessMaker\Model\Triggers; use ProcessMaker\Model\User; @@ -534,4 +537,59 @@ class CasesTest extends TestCase // Asserts $this->assertCount(3, $result['data']); } + + /** + * This test the method getStepsToRevise. + * @test + * @covers ProcessMaker\BusinessModel\Cases::getStepsToRevise + */ + public function it_should_test_getStepsToRevise() + { + //definition data + $dynaform = Dynaform::factory()->create(); + $application = Application::factory()->create([ + 'PRO_UID' => $dynaform->PRO_UID + ]); + $stepSupervisor = StepSupervisor::factory()->create([ + 'PRO_UID' => $application->PRO_UID, + 'STEP_TYPE_OBJ' => 'DYNAFORM', + 'STEP_UID_OBJ' => $dynaform->DYN_UID + ]); + + //assertion + $cases = new Cases(); + $result = $cases->getStepsToRevise($application->APP_UID, 'DYNAFORM'); + $this->assertEquals($stepSupervisor->PRO_UID, $result[0]['PRO_UID']); + } + + /** + * This test the method getAllUrlStepsToRevise. + * @test + * @covers ProcessMaker\BusinessModel\Cases::getAllUrlStepsToRevise + */ + public function it_should_test_getAllUrlStepsToRevise() + { + //definition data + $dynaform = Dynaform::factory()->create(); + $inputDocument = InputDocument::factory()->create(); + $application = Application::factory()->create([ + 'PRO_UID' => $dynaform->PRO_UID + ]); + $stepSupervisor = StepSupervisor::factory()->create([ + 'PRO_UID' => $application->PRO_UID, + 'STEP_TYPE_OBJ' => 'DYNAFORM', + 'STEP_UID_OBJ' => $dynaform->DYN_UID + ]); + $stepSupervisor = StepSupervisor::factory()->create([ + 'PRO_UID' => $application->PRO_UID, + 'STEP_TYPE_OBJ' => 'INPUT_DOCUMENT', + 'STEP_UID_OBJ' => $inputDocument->INP_DOC_UID + ]); + + //assertion + $cases = new Cases(); + $result = $cases->getAllUrlStepsToRevise($application->APP_UID, 2); + $this->assertEquals($dynaform->DYN_UID, $result[0]['uid']); + $this->assertEquals($inputDocument->INP_DOC_UID, $result[1]['uid']); + } } diff --git a/workflow/engine/classes/PmDynaform.php b/workflow/engine/classes/PmDynaform.php index aeebed6ce..70b174382 100644 --- a/workflow/engine/classes/PmDynaform.php +++ b/workflow/engine/classes/PmDynaform.php @@ -1377,8 +1377,16 @@ class PmDynaform exit(); } - public function printEditSupervisor() + /** + * Print edit supervisor forms. + * @param array $param + */ + public function printEditSupervisor(array $param = []) { + $navbar = ''; + if (isset($param['DEL_INDEX'])) { + $navbar = self::navigationBarForStepsToRevise($this->fields["APP_UID"], $this->fields["CURRENT_DYNAFORM"], $param['DEL_INDEX']); + } ob_clean(); $json = G::json_decode($this->record["DYN_CONTENT"]); $this->jsonr($json); @@ -1405,6 +1413,7 @@ class PmDynaform " . $this->getTheStringVariableForGoogleMaps() . " + {$navbar}