[AZ-1113] Cycle 10 closeout: docs, perf harness, security

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Oleksandr Bezdieniezhnykh
2026-06-26 10:55:59 +03:00
parent 01d7e7d584
commit c79998bfa7
24 changed files with 600 additions and 46 deletions
@@ -113,8 +113,12 @@ public static class RegionRequestValidationTests
var problem = await ProblemDetailsAssertions.ReadProblemDetailsAsync(response, "AZ-808 missing id");
// Assert
ProblemDetailsAssertions.AssertValidationProblem(problem, expectedStatus: 400, label: "AZ-808 missing id");
ProblemDetailsAssertions.AssertErrorsContainsMention(problem, expectedMention: "id", label: "AZ-808 missing id");
ProblemDetailsAssertions.AssertValidationProblem(
problem,
expectedStatus: 400,
label: "AZ-808 missing id",
expectedErrorPath: "$",
expectedErrorContains: "The field value is invalid.");
Console.WriteLine(" ✓ Missing `id` rejected with HTTP 400 (no silent coercion)");
}
@@ -151,8 +155,12 @@ public static class RegionRequestValidationTests
var problem = await ProblemDetailsAssertions.ReadProblemDetailsAsync(response, "AZ-808 missing lat");
// Assert
ProblemDetailsAssertions.AssertValidationProblem(problem, expectedStatus: 400, label: "AZ-808 missing lat");
ProblemDetailsAssertions.AssertErrorsContainsMention(problem, expectedMention: "lat", label: "AZ-808 missing lat");
ProblemDetailsAssertions.AssertValidationProblem(
problem,
expectedStatus: 400,
label: "AZ-808 missing lat",
expectedErrorPath: "$",
expectedErrorContains: "The field value is invalid.");
Console.WriteLine(" ✓ Missing `lat` rejected with HTTP 400");
}
@@ -190,8 +198,12 @@ public static class RegionRequestValidationTests
var problem = await ProblemDetailsAssertions.ReadProblemDetailsAsync(response, "AZ-808 missing lon");
// Assert
ProblemDetailsAssertions.AssertValidationProblem(problem, expectedStatus: 400, label: "AZ-808 missing lon");
ProblemDetailsAssertions.AssertErrorsContainsMention(problem, expectedMention: "lon", label: "AZ-808 missing lon");
ProblemDetailsAssertions.AssertValidationProblem(
problem,
expectedStatus: 400,
label: "AZ-808 missing lon",
expectedErrorPath: "$",
expectedErrorContains: "The field value is invalid.");
Console.WriteLine(" ✓ Missing `lon` rejected with HTTP 400");
}
@@ -229,8 +241,12 @@ public static class RegionRequestValidationTests
var problem = await ProblemDetailsAssertions.ReadProblemDetailsAsync(response, "AZ-808 missing sizeMeters");
// Assert
ProblemDetailsAssertions.AssertValidationProblem(problem, expectedStatus: 400, label: "AZ-808 missing sizeMeters");
ProblemDetailsAssertions.AssertErrorsContainsMention(problem, expectedMention: "sizeMeters", label: "AZ-808 missing sizeMeters");
ProblemDetailsAssertions.AssertValidationProblem(
problem,
expectedStatus: 400,
label: "AZ-808 missing sizeMeters",
expectedErrorPath: "$",
expectedErrorContains: "The field value is invalid.");
Console.WriteLine(" ✓ Missing `sizeMeters` rejected with HTTP 400");
}
@@ -268,8 +284,12 @@ public static class RegionRequestValidationTests
var problem = await ProblemDetailsAssertions.ReadProblemDetailsAsync(response, "AZ-808 missing zoomLevel");
// Assert
ProblemDetailsAssertions.AssertValidationProblem(problem, expectedStatus: 400, label: "AZ-808 missing zoomLevel");
ProblemDetailsAssertions.AssertErrorsContainsMention(problem, expectedMention: "zoomLevel", label: "AZ-808 missing zoomLevel");
ProblemDetailsAssertions.AssertValidationProblem(
problem,
expectedStatus: 400,
label: "AZ-808 missing zoomLevel",
expectedErrorPath: "$",
expectedErrorContains: "The field value is invalid.");
Console.WriteLine(" ✓ Missing `zoomLevel` rejected with HTTP 400");
}
@@ -307,8 +327,12 @@ public static class RegionRequestValidationTests
var problem = await ProblemDetailsAssertions.ReadProblemDetailsAsync(response, "AZ-808 missing stitchTiles");
// Assert
ProblemDetailsAssertions.AssertValidationProblem(problem, expectedStatus: 400, label: "AZ-808 missing stitchTiles");
ProblemDetailsAssertions.AssertErrorsContainsMention(problem, expectedMention: "stitchTiles", label: "AZ-808 missing stitchTiles");
ProblemDetailsAssertions.AssertValidationProblem(
problem,
expectedStatus: 400,
label: "AZ-808 missing stitchTiles",
expectedErrorPath: "$",
expectedErrorContains: "The field value is invalid.");
Console.WriteLine(" ✓ Missing `stitchTiles` rejected with HTTP 400");
}