Skip to content

Commit 274f519

Browse files
fix: restore error aggregation in ValidateRow, assert validation keys in tests
- Restore accumulation of multiple validation errors per member per row (regression from refactoring: was overwriting instead of appending) - Assert ValidationProblemDetails.Errors contains Page/PageSize keys in invalid pagination tests Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
1 parent e128da0 commit 274f519

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

src/AxisEndpoints.Extensions.CsvHelper/CsvRequest.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,15 @@ Dictionary<string, string[]> errors
168168
{
169169
var memberName = result.MemberNames.FirstOrDefault() ?? "(unknown)";
170170
var key = $"row {rowNumber}: {memberName}";
171-
errors[key] = [result.ErrorMessage ?? "Validation failed."];
171+
var message = result.ErrorMessage ?? "Validation failed.";
172+
if (errors.TryGetValue(key, out var existing))
173+
{
174+
errors[key] = [..existing, message];
175+
}
176+
else
177+
{
178+
errors[key] = [message];
179+
}
172180
}
173181
}
174182
}

tests/AxisEndpoints.Example.Tests/ListUsersEndpointTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using AxisEndpoints.Example.Features.Users;
44
using AxisEndpoints.Example.Features.Users.List;
55
using FluentAssertions;
6+
using Microsoft.AspNetCore.Mvc;
67

78
namespace AxisEndpoints.Example.Tests;
89

@@ -76,6 +77,9 @@ public async Task ListUsers_InvalidPage_Returns400()
7677
var response = await _client.GetAsync("/api/users?page=0");
7778

7879
response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
80+
var body = await response.Content.ReadFromJsonAsync<ValidationProblemDetails>();
81+
body.Should().NotBeNull();
82+
body!.Errors.Should().ContainKey("Page");
7983
}
8084

8185
[Fact]
@@ -84,5 +88,8 @@ public async Task ListUsers_InvalidPageSize_Returns400()
8488
var response = await _client.GetAsync("/api/users?pageSize=0");
8589

8690
response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
91+
var body = await response.Content.ReadFromJsonAsync<ValidationProblemDetails>();
92+
body.Should().NotBeNull();
93+
body!.Errors.Should().ContainKey("PageSize");
8794
}
8895
}

0 commit comments

Comments
 (0)