mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-10-04 04:19:43 +00:00
Add test for detecting stale workflows and enhance handler
Added a new test to check if workflows are stale in EntityWorkflowTest. Enhanced CancelStaleWorkflowHandler to handle stale workflows more accurately, including checking if workflows have transitioned recently. Updated EntityWorkflow entity to cascade remove workflow steps. Refactor tests for handler, to avoid using $kernel during tests
This commit is contained in:
@@ -138,4 +138,31 @@ final class EntityWorkflowTest extends TestCase
|
||||
self::assertContains($person1, $persons);
|
||||
self::assertContains($person2, $persons);
|
||||
}
|
||||
|
||||
public function testIsStaledAt(): void
|
||||
{
|
||||
$creationDate = new \DateTimeImmutable('2024-01-01');
|
||||
$firstStepDate = new \DateTimeImmutable('2024-01-02');
|
||||
$afterFistStep = new \DateTimeImmutable('2024-01-03');
|
||||
|
||||
$entityWorkflow = new EntityWorkflow();
|
||||
|
||||
self::assertFalse($entityWorkflow->isStaledAt($creationDate), 'an entityWorkflow with null createdAt date should never be staled at initial step');
|
||||
self::assertFalse($entityWorkflow->isStaledAt($firstStepDate), 'an entityWorkflow with null createdAt date should never be staled at initial step');
|
||||
self::assertFalse($entityWorkflow->isStaledAt($afterFistStep), 'an entityWorkflow with null createdAt date should never be staled at initial step');
|
||||
|
||||
$entityWorkflow->setCreatedAt($creationDate);
|
||||
|
||||
self::assertFalse($entityWorkflow->isStaledAt($creationDate), 'an entityWorkflow with no step after initial should be staled');
|
||||
self::assertTrue($entityWorkflow->isStaledAt($firstStepDate), 'an entityWorkflow with no step after initial should be staled');
|
||||
self::assertTrue($entityWorkflow->isStaledAt($afterFistStep), 'an entityWorkflow with no step after initial should be staled');
|
||||
|
||||
// apply a first step
|
||||
$dto = new WorkflowTransitionContextDTO($entityWorkflow);
|
||||
$entityWorkflow->setStep('new_step', $dto, 'to_new_step', $firstStepDate);
|
||||
|
||||
self::assertFalse($entityWorkflow->isStaledAt($creationDate));
|
||||
self::assertFalse($entityWorkflow->isStaledAt($firstStepDate));
|
||||
self::assertTrue($entityWorkflow->isStaledAt($afterFistStep));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user