Stop jhr XHR function from swallowing JSON.parse error #31
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.
There are a number of circumstances where the server may return a non-empty non-JSON response:
In these cases
jhr
dies silently and so the front end cannot easily display an error message. This change wraps the JSON parsing in a function with a try catch and returns an appropriate error.I have an issue with the tests - the pass successfully in the browser (by loading runner.html) but they fail with
yarn test
which complains withFailed assertion: expected: [object Object], but was: [object Object]
. This is different to failure in the browser UI that gives you a nice string diff between the objects. it seems like gulp-qunit is ending up with a different broken implementation ofdeepEqual
. I tried upgradinggulp-qunit
andqunit
but it didn't help. Perhaps you have an idea how to fix, otherwise we can work around it some other way. It's odd because I don't see the difference between the other usages that work fine.