- Added go-playground/validator dependency - Created pkg/validation/ package with custom validator wrapper - Implemented request validation for v2 greet endpoint - Added structured validation error responses - Extended BDD tests to cover validation scenarios - Updated AGENTS.md with v2 API documentation - Created ADR 0011-validation-library-selection.md - Simplified server handler creation code - Updated CHANGELOG with implementation details
33 lines
1.4 KiB
Gherkin
33 lines
1.4 KiB
Gherkin
# features/greet.feature
|
|
Feature: Greet Service
|
|
The greet service should return appropriate greetings
|
|
|
|
Scenario: Default greeting
|
|
Given the server is running
|
|
When I request the default greeting
|
|
Then the response should be "{\"message\":\"Hello world!\"}"
|
|
|
|
Scenario: Personalized greeting
|
|
Given the server is running
|
|
When I request a greeting for "John"
|
|
Then the response should be "{\"message\":\"Hello John!\"}"
|
|
|
|
Scenario: v2 greeting with JSON POST request
|
|
Given the server is running with v2 enabled
|
|
When I send a POST request to v2 greet with name "John"
|
|
Then the response should be "{\"message\":\"Hello my friend John!\"}"
|
|
|
|
Scenario: v2 default greeting with empty name
|
|
Given the server is running with v2 enabled
|
|
When I send a POST request to v2 greet with name ""
|
|
Then the response should be "{\"message\":\"Hello my friend!\"}"
|
|
|
|
Scenario: v2 greeting with missing name field
|
|
Given the server is running with v2 enabled
|
|
When I send a POST request to v2 greet with invalid JSON "{}"
|
|
Then the response should be "{\"message\":\"Hello my friend!\"}"
|
|
|
|
Scenario: v2 greeting with name that is too long
|
|
Given the server is running with v2 enabled
|
|
When I send a POST request to v2 greet with name "ThisNameIsWayTooLongAndShouldFailValidationBecauseItExceedsTheMaximumAllowedLengthOf100Characters!!!!"
|
|
Then the response should contain error "validation_failed" |