Skip to content

Commit d63b649

Browse files
authored
Merge pull request #453 from Syedowais312/fix/panic-on-unknown-service-test
fix: panic on nil type assertion when testing unregistered service
2 parents f883c02 + 7a16b17 commit d63b649

1 file changed

Lines changed: 12 additions & 7 deletions

File tree

pkg/connectors/microcks_client.go

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -376,21 +376,26 @@ func (c *microcksClient) CreateTestResult(serviceID string, testEndpoint string,
376376
}
377377
defer resp.Body.Close()
378378

379-
// Dump response if verbose required.
380-
config.DumpResponseIfRequired("Microcks for creating test", resp, true)
381-
382379
body, err := io.ReadAll(resp.Body)
383380
if err != nil {
384-
panic(err.Error())
381+
return "", fmt.Errorf("failed to read response body: %w", err)
382+
}
383+
384+
// Check HTTP status before attempting to parse.
385+
if resp.StatusCode != 201 {
386+
return "", fmt.Errorf("microcks returned HTTP %d: %s (is the service '%s' registered?)", resp.StatusCode, strings.TrimSpace(string(body)), serviceID)
385387
}
386388

387389
var createTestResp map[string]interface{}
388390
if err := json.Unmarshal(body, &createTestResp); err != nil {
389-
panic(err)
391+
return "", fmt.Errorf("failed to parse test creation response: %w", err)
390392
}
391393

392-
testID := createTestResp["id"].(string)
393-
return testID, err
394+
testID, ok := createTestResp["id"].(string)
395+
if !ok || testID == "" {
396+
return "", fmt.Errorf("microcks response missing 'id' field")
397+
}
398+
return testID, nil
394399
}
395400

396401
func (c *microcksClient) GetTestResult(testResultID string) (*TestResultSummary, error) {

0 commit comments

Comments
 (0)