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.
What is this?
Creates an integration testing helper that's exposed via
next/test/helper
. This is useful for upstream apps that would like to test next.js using an integration server.why? I'm OCD about unit-testing, and as far as I can tell existing tools like Enzyme don't work perfectly for next.js, since next.js' rendering helpers have quite a bit of magic (good magic, mind you):
The API
async setup():
Sets up the integration testing application.
SKIP_BUILD=1
can be provided, to avoid building an application between test runs -- this can be useful when you're adding unit-tests to an existing codebase.async teardown():
Cleanup the integration testing application.
async render(path, query, req, res, opts):
Helper for rendering application:
The order of arguments is different than
render
/renderToHTML
, to better server the most common use-case:render('/some-path', {q: 'some params'})
The
query-string
module is used to magically populatereq.url
.