Add comprehensive @WebMvcTest for PatronProfileController #17
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add comprehensive @WebMvcTest for PatronProfileController
Summary
This PR adds a comprehensive Spock/Groovy test suite for
PatronProfileControllerusing@WebMvcTest. The controller previously had zero test coverage despite being a critical 189-line REST API handling all patron profile operations.Test Coverage:
Technical Approach:
@WebMvcTestfor focused web layer testingPatronProfiles,PlacingOnHold,CancelingHold) usingDetachedMockFactoryin@TestConfigurationTry<Result>,io.vavr.collection.List)Review & Testing Checklist for Human
DetachedMockFactoryin@TestConfigurationproperly integrates with@WebMvcTestand Spring's DITry.failure(IllegalArgumentException)actually returns 404 andTry.failure(RuntimeException)returns 500 in the real controllerTest Plan
If you want to manually verify (optional):
./mvnw spring-boot:runcurl http://localhost:8080/profiles/{some-uuid}Notes
BookFixture,PatronFixture,LibraryBranchFixture)HandleDuplicateHoldTestand other Spock tests in the codebaseLink to Devin run: https://app.devin.ai/sessions/5e8fa251db55404981fc272f771675b3
Requested by: Callum Miles (@callummiles)