Add Go service/handler tests for API contract parity (#16905)

This commit is contained in:
euvre
2026-07-20 20:02:41 +08:00
committed by GitHub
parent 2f7c2eb53c
commit f45f03a016
46 changed files with 1553 additions and 214 deletions

View File

@@ -201,12 +201,25 @@ func (h *DatasetsHandler) UpdateDataset(c *gin.Context) {
return
}
var req service.UpdateDatasetRequest
if err := c.ShouldBindJSON(&req); err != nil {
bodyBytes, err := c.GetRawData()
if err != nil {
common.ResponseWithCodeData(c, common.CodeDataError, nil, err.Error())
return
}
var req service.UpdateDatasetRequest
if err := json.Unmarshal(bodyBytes, &req); err != nil {
common.ResponseWithCodeData(c, common.CodeDataError, nil, err.Error())
return
}
// Detect an explicitly provided parser_config key (even {} or null) so it is not
// rejected as "No properties were modified", mirroring the Python contract.
var providedFields map[string]json.RawMessage
if err := json.Unmarshal(bodyBytes, &providedFields); err == nil {
_, req.ParserConfigProvided = providedFields["parser_config"]
}
result, code, err := h.datasetsService.UpdateDataset(datasetID, userID, req)
if err != nil {
common.ErrorWithCode(c, code, err.Error())