fix(vikon): check HTTP status instead of JSON field for part generation check

This commit is contained in:
F4ilji
2026-07-05 10:55:37 +05:00
parent 3d9982e5be
commit af1fb094d2
2 changed files with 7 additions and 5 deletions
@@ -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
@@ -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';