From b47c8a4b5c405e432db9341561dedce086f915ad Mon Sep 17 00:00:00 2001 From: roxblnfk Date: Tue, 24 Sep 2024 16:06:43 +0400 Subject: [PATCH] Fix psalm issues --- psalm-baseline.xml | 6 ------ src/Exception/Failure/FailureConverter.php | 6 ++++-- .../Exception/FailureConverterTestCase.php | 19 ++++++++++++++++++- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 1b7fb927..1a1913a2 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -363,14 +363,8 @@ - - - - - - diff --git a/src/Exception/Failure/FailureConverter.php b/src/Exception/Failure/FailureConverter.php index bff727e5..faf941b5 100644 --- a/src/Exception/Failure/FailureConverter.php +++ b/src/Exception/Failure/FailureConverter.php @@ -87,12 +87,15 @@ public static function mapExceptionToFailure(\Throwable $e, DataConverterInterfa $info->setType($e->getType()); $info->setNonRetryable($e->isNonRetryable()); + // Set Next Retry Delay + $nextRetry = DateInterval::toDuration($e->getNextRetryDelay()); + $nextRetry === null or $info->setNextRetryDelay($nextRetry); + if (!$e->getDetails()->isEmpty()) { $info->setDetails($e->getDetails()->toPayloads()); } $failure->setApplicationFailureInfo($info); - $info->setNextRetryDelay(DateInterval::toDuration($e->getNextRetryDelay())); break; case $e instanceof TimeoutFailure: @@ -270,7 +273,6 @@ private static function createFailureException(Failure $failure, DataConverterIn case $failure->hasChildWorkflowExecutionFailureInfo(): $info = $failure->getChildWorkflowExecutionFailureInfo(); $execution = $info->getWorkflowExecution(); - \assert($info instanceof ChildWorkflowExecutionFailureInfo); \assert($execution instanceof WorkflowExecution); return new ChildWorkflowFailure( diff --git a/tests/Unit/Exception/FailureConverterTestCase.php b/tests/Unit/Exception/FailureConverterTestCase.php index 49be7661..ee32ee96 100644 --- a/tests/Unit/Exception/FailureConverterTestCase.php +++ b/tests/Unit/Exception/FailureConverterTestCase.php @@ -133,7 +133,7 @@ public function testMapFailureToException(): void $this->assertSame("test stack trace:\n#1\n#2\n#3", $exception->getOriginalStackTrace()); } - public function testMapExceptionToFailure(): void + public function testMapExceptionToFailureWithNextRetryDelay(): void { $converter = DataConverter::createDefault(); $exception = new ApplicationFailure( @@ -155,4 +155,21 @@ public function testMapExceptionToFailure(): void $this->assertSame(5 * 60 + 13, $failure->getApplicationFailureInfo()->getNextRetryDelay()->getSeconds()); $this->assertSame(15_000, $failure->getApplicationFailureInfo()->getNextRetryDelay()->getNanos()); } + + public function testMapExceptionToFailure(): void + { + $converter = DataConverter::createDefault(); + $exception = new ApplicationFailure( + 'message', + 'type', + true, + ); + + $failure = FailureConverter::mapExceptionToFailure($exception, $converter); + + $this->assertSame('type', $failure->getApplicationFailureInfo()->getType()); + $this->assertTrue($failure->getApplicationFailureInfo()->getNonRetryable()); + $this->assertEmpty($failure->getApplicationFailureInfo()->getDetails()); + $this->assertNull($failure->getApplicationFailureInfo()->getNextRetryDelay()); + } }