fix(sgid): add guard clause to ensure field is present before formatting #7997
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.
Problem
When an initial scope is requested to sgID, the scope could have been outdated if the admin updates the form while the respondent is approving the sgID request.
This results in sgID returning fields requested in the initial scope. When BE receives and assess scope, there are fields that would be formatted (i.e., requiring and assuming that the fields are rightly returned). These formatters would then fail (and crash the system) since sgID response did not contain the latest form data.
Solution
Add undefined check before calling formatX which attempts to manipulates the fields.
Note: The form definition would be checked on submission, which invalidates the submission thereafter.
Breaking Changes
Tests
Updated form when requested with old sgid scope should not crash BE