Improve OpenProcessing API error handling and add caching tests #971
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.
addresses #955 and is a follow-up to #959.
This PR improves error handling in the OpenProcessing API functions and adds tests, focusing on caching behavior, to prevent silent build issues.
Main changes
Previously, when OpenProcessing API calls failed, we would only log the errors and continue the build process with potentially broken data. This could lead to successful builds with broken sketch pages or cause confusing build failures much later in the pipeline. with the changes the build fails immediately and explicitly when an API call fails to make debugging much clearer and prevent broken pages from being deployed.
A test case for caching failures due to incorrect input types (e.g., passing a string to getSketch like #955) was intentionally omitted, as this type of error is better caught by static type checking.
Notes
With these changes, if an API call for an individual sketch fails, the entire build will now fail. We could adjust this in the future to skip only the problematic pages, but failing fast seems like a safer approach for now.
We should also consider making the CI build conditional on tests passing, especially since we are now testing caching behavior that is critical for build performance.