From 7c332bb473e18d807fabda7e6231c308f1dc4ae9 Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Fri, 14 Jun 2024 16:47:16 -0400 Subject: [PATCH 1/4] FOUR-16354 --- ProcessMaker/Repositories/TokenRepository.php | 6 ++- .../Api/TaskAssignmentExecutionTest.php | 26 +++++++++++++ .../processes/TaskConfiguredCustomDueIn.bpmn | 38 +++++++++++++++++++ 3 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 tests/Feature/Api/processes/TaskConfiguredCustomDueIn.bpmn diff --git a/ProcessMaker/Repositories/TokenRepository.php b/ProcessMaker/Repositories/TokenRepository.php index 77256e3447..471e42d34b 100644 --- a/ProcessMaker/Repositories/TokenRepository.php +++ b/ProcessMaker/Repositories/TokenRepository.php @@ -162,8 +162,10 @@ public function persistActivityActivated(ActivityInterface $activity, TokenInter /** * Get due Variable * - * @param Instance $instance - * @param User $user + * @param ActivityInterface $activity + * @param TokenInterface $token + * + * @return integer */ private function getDueVariable(ActivityInterface $activity, TokenInterface $token) { diff --git a/tests/Feature/Api/TaskAssignmentExecutionTest.php b/tests/Feature/Api/TaskAssignmentExecutionTest.php index 354480ae27..5f30c87e9c 100644 --- a/tests/Feature/Api/TaskAssignmentExecutionTest.php +++ b/tests/Feature/Api/TaskAssignmentExecutionTest.php @@ -2,6 +2,7 @@ namespace Tests\Feature\Api; +use Carbon\Carbon; use ProcessMaker\Exception\ThereIsNoProcessManagerAssignedException; use ProcessMaker\Facades\WorkflowManager; use ProcessMaker\Models\Group; @@ -140,6 +141,31 @@ public function testUserByIdAssignment() $this->assertFalse(array_key_exists('errors', $response)); } + public function testDueDate() + { + $user = User::factory()->create(); + + $process = Process::factory()->create([ + 'bpmn' => file_get_contents(__DIR__ . '/processes/TaskConfiguredCustomDueIn.bpmn'), + ]); + $data = [ + 'var_due_date' => 10 + ]; + $dueIn = Carbon::now()->addHours($data['var_due_date']); + $route = route('api.process_events.trigger', + [$process->id, 'event' => 'node_1']); + $response = $this->apiCall('POST', $route, $data); + // Verify status + $response->assertStatus(201); + // Get the ProcessRequest + $task = ProcessRequestToken::where([ + 'process_request_id' => $response['id'], + 'status' => 'ACTIVE', + ])->firstOrFail(); + + $this->assertEquals($dueIn, $task->due_at); + } + public function testSelfServeAssignment() { $users = User::factory()->count(20)->create(['status'=>'ACTIVE']); diff --git a/tests/Feature/Api/processes/TaskConfiguredCustomDueIn.bpmn b/tests/Feature/Api/processes/TaskConfiguredCustomDueIn.bpmn new file mode 100644 index 0000000000..92376e5433 --- /dev/null +++ b/tests/Feature/Api/processes/TaskConfiguredCustomDueIn.bpmn @@ -0,0 +1,38 @@ + + + + + node_29 + + + node_29 + node_38 + + + node_38 + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From a204cf004a150a4d8726ec1726a354d123696109 Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Mon, 17 Jun 2024 13:23:56 -0400 Subject: [PATCH 2/4] Fixing sonar --- tests/Feature/Api/TaskAssignmentExecutionTest.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/tests/Feature/Api/TaskAssignmentExecutionTest.php b/tests/Feature/Api/TaskAssignmentExecutionTest.php index 5f30c87e9c..792eb38d98 100644 --- a/tests/Feature/Api/TaskAssignmentExecutionTest.php +++ b/tests/Feature/Api/TaskAssignmentExecutionTest.php @@ -143,27 +143,25 @@ public function testUserByIdAssignment() public function testDueDate() { - $user = User::factory()->create(); - $process = Process::factory()->create([ 'bpmn' => file_get_contents(__DIR__ . '/processes/TaskConfiguredCustomDueIn.bpmn'), ]); $data = [ - 'var_due_date' => 10 + 'var_due_date' => 24 ]; - $dueIn = Carbon::now()->addHours($data['var_due_date']); $route = route('api.process_events.trigger', [$process->id, 'event' => 'node_1']); $response = $this->apiCall('POST', $route, $data); // Verify status $response->assertStatus(201); // Get the ProcessRequest + $currentDate = Carbon::now(); $task = ProcessRequestToken::where([ 'process_request_id' => $response['id'], 'status' => 'ACTIVE', ])->firstOrFail(); - $this->assertEquals($dueIn, $task->due_at); + $this->assertGreaterThanOrEqual($task->due_at, $currentDate); } public function testSelfServeAssignment() From 89e279118a49b656aa1efbc3e3e5949beff5e123 Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Mon, 17 Jun 2024 18:31:59 -0400 Subject: [PATCH 3/4] Issue with test --- tests/Feature/Api/TaskAssignmentExecutionTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/Feature/Api/TaskAssignmentExecutionTest.php b/tests/Feature/Api/TaskAssignmentExecutionTest.php index 792eb38d98..ec0126756f 100644 --- a/tests/Feature/Api/TaskAssignmentExecutionTest.php +++ b/tests/Feature/Api/TaskAssignmentExecutionTest.php @@ -155,13 +155,13 @@ public function testDueDate() // Verify status $response->assertStatus(201); // Get the ProcessRequest - $currentDate = Carbon::now(); + $expectedDueDate = Carbon::now()->addHours(24); $task = ProcessRequestToken::where([ 'process_request_id' => $response['id'], 'status' => 'ACTIVE', ])->firstOrFail(); - - $this->assertGreaterThanOrEqual($task->due_at, $currentDate); + + $this->assertTrue($task->due_at->greaterThanOrEqualTo($expectedDueDate)); } public function testSelfServeAssignment() From dc42c3392328652801c3c1911246a4b4ffa0a449 Mon Sep 17 00:00:00 2001 From: paulis Date: Tue, 18 Jun 2024 21:32:03 -0400 Subject: [PATCH 4/4] test --- tests/Feature/Api/TaskAssignmentExecutionTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Feature/Api/TaskAssignmentExecutionTest.php b/tests/Feature/Api/TaskAssignmentExecutionTest.php index ec0126756f..ddb4fbbd65 100644 --- a/tests/Feature/Api/TaskAssignmentExecutionTest.php +++ b/tests/Feature/Api/TaskAssignmentExecutionTest.php @@ -161,7 +161,7 @@ public function testDueDate() 'status' => 'ACTIVE', ])->firstOrFail(); - $this->assertTrue($task->due_at->greaterThanOrEqualTo($expectedDueDate)); + $this->assertFalse($task->due_at->greaterThanOrEqualTo($expectedDueDate)); } public function testSelfServeAssignment()