Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix issues found in test.html #83

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

cwalther
Copy link
Contributor

These commits fix several issues that became apparent in the revival of test.html, #81.

  1. Fix a copy-paste error that causes missing output because an exception aborted rendering when a certain error occurs. This makes the test.html output identical again to what is currently at http://lbovet.github.io/docson/tests/test.html (which I am treating as the “known good baseline” for the purposes of this consideration, even though it has some problems itself).
  2. Fix aforementioned error: The HTML page was mistakenly retrieved in an attempt to get the root schema, resulting in a JSON parsing error.
  3. Fix a test that started failing due to behavior changed by 2., however I consider that behavior change an improvement and therefore changed the test. This changes the same lines as Make tests faster by avoiding unnecessary waiting #79, which is why the commits are based on that, not on master.
  4. Fix backreferences to the root ({"$ref": "#"}) not appearing in the output. This is an improvement over the “baseline” test.html output.

Running jest runs the two test suites in parallel. If both try to run a server on port 3000, only one of them will succeed and supply files for both, however when that suite finishes first, it will take down the server and leave the other one hanging. Fix this by running the servers on different ports.
Puppeteer allows us to wait for the specific element we want to check instead of waiting for a fixed time and hoping it will be there by then.

This reduces the total testing time from 26s to 7s for me.
…ing errors.

This appears to have been a copy-paste error in 6b97aa2 and caused rendering of schemas that triggered such parsing errors to be aborted before anything was rendered.

Also output the content that failed to parse for more info.

This brings test.html output back to what is currently seen at http://lbovet.github.io/docson/tests/test.html, although with a wrongful such JSON parsing error on the console, to be fixed in the next commit.
In schemas that contained internal references ({"$ref": "#..."}), Docson would attempt to retrieve the document named by that URI using $.get(). That would result in the HTML code for the page it was running in, which is completely unrelated and would fail to parse as JSON, resulting in an error message on the console.

To avoid attempting to retrieve the root document again, initialize the document collection with it already.

As a side effect, this causes a circular reference to the root schema to be detected at the first cycle rather than the second, which makes integration test "recursive schema" fail, but actually seems desirable to me.
The previous commit causes a circular reference to the root schema to be detected at the first cycle rather than the second, like anywhere else. That actually seems to make more sense to me, so change the test that previously checked for detection at the second cycle.
It was mistakenly looked up under URI "" instead of "#".
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant