diff --git a/app/Containers/VikonIntegration/Actions/UpdatePartAction.php b/app/Containers/VikonIntegration/Actions/UpdatePartAction.php index 5b3a08b..7addeb6 100644 --- a/app/Containers/VikonIntegration/Actions/UpdatePartAction.php +++ b/app/Containers/VikonIntegration/Actions/UpdatePartAction.php @@ -55,15 +55,15 @@ class UpdatePartAction throw new \RuntimeException("Part generation failed: {$error}"); } - // Step 3: Check result + // Step 3: Check result (API returns HTTP 200 on success, no JSON body needed) $checkResponse = $this->http->getWithToken( "pull_updates/checkPartGenerationByNewCoreResultJson?operation_identity={$operationIdentity}&part={$part}", $accessToken ); - $checkBody = $checkResponse->json(); - if (empty($checkBody['success'])) { - throw new \RuntimeException('Part not ready: ' . ($checkBody['message'] ?? 'Unknown')); + if ($checkResponse->failed()) { + $body = $checkResponse->json([]); + throw new \RuntimeException('Part not ready: ' . ($body['message'] ?? 'HTTP ' . $checkResponse->status())); } // Step 4: Download ZIP diff --git a/app/Containers/VikonIntegration/Tests/Unit/UpdatePartActionTest.php b/app/Containers/VikonIntegration/Tests/Unit/UpdatePartActionTest.php index 3e1017b..0e93b24 100644 --- a/app/Containers/VikonIntegration/Tests/Unit/UpdatePartActionTest.php +++ b/app/Containers/VikonIntegration/Tests/Unit/UpdatePartActionTest.php @@ -85,10 +85,12 @@ class UpdatePartActionTest extends TestCase ->with('op-abc-123', 'token') ->andReturn(['status' => 'completed']); + $checkResponse = Mockery::mock(Response::class); + $checkResponse->shouldReceive('failed')->once()->andReturn(false); $http->shouldReceive('getWithToken') ->once() ->with('pull_updates/checkPartGenerationByNewCoreResultJson?operation_identity=op-abc-123&part=common', 'token') - ->andReturn($this->mockResponse(['success' => true])); + ->andReturn($checkResponse); // Create a minimal ZIP $tempZipDir = $this->tempDir . '/zip_source';