fix: mandatory attributes cannot have empty value [DHIS2-18365] #19586
+87
−36
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.
Summary
The main issue was that an empty string value was considered as being present.
Secondary issue was that the attribute value parsing in 2.42 did not accept any other JSON values than a JSON string.
While this is strictly correct the app apparently does use JSON boolean so the parsing was adjusted to handle other JSON types.
For better visibility in case of errors the
JobProgress
tracking for synchronous metadata imports was changed to useRecordingJobProgress.transitory
which behaves like a persistent tracking except that it discards completed nodes in the progress tree.Manual Testing
See Jira description
Automatic Testing
2 new test scenarios where added testing that adding a user either with an empty value for the mandatory attribute or entirely without the attribute results in a CONFLICT response.