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

Enable Link tests without Router (#9951) #9959

Closed
wants to merge 1 commit into from

Conversation

rendoh
Copy link

@rendoh rendoh commented Jan 6, 2020

Link.handleRef sometimes raises a TypeError because singleton router may not exist in unit tests. I think it should deal with the case without router. Would you be able to review this, please?

Fixes #9951

@ijjk
Copy link
Member

ijjk commented Jan 6, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
buildDuration 13.2s 13.3s ⚠️ +64ms
nodeModulesSize 48.9 MB 48.9 MB ⚠️ +26 B
Client Bundles (main, webpack, commons)
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
main-HASH.js gzip 5.13 kB 5.13 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..4cf7.js gzip 13.7 kB 13.7 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 67.5 kB 67.5 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
main-HASH.module.js gzip 4.19 kB 4.19 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 12.5 kB 12.5 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 62.1 kB 62.1 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages Overall increase ⚠️
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
_app.js gzip 1.33 kB 1.33 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.9 kB 2.9 kB ⚠️ +3 B
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.87 kB 9.87 kB ⚠️ +3 B
Client Pages Modern Overall increase ⚠️
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
_app.module.js gzip 757 B 757 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.47 kB 2.48 kB ⚠️ +4 B
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.41 kB 7.42 kB ⚠️ +4 B
Client Build Manifests
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
index.html gzip 1.02 kB 1.02 kB
link.html gzip 1.03 kB 1.03 kB
withRouter.html gzip 1.02 kB 1.02 kB
Overall change 3.07 kB 3.07 kB

Diffs

Diff for link.js
@@ -655,6 +655,7 @@
                 var _this2 = this
 
                 var isPrefetched =
+                  _router['default'].router &&
                   _router['default'].router.pageLoader.prefetched[
                     this.getHref()
                   ]
Diff for link.module.js
@@ -497,6 +497,7 @@
 
         handleRef(ref) {
           var isPrefetched =
+            _router.default.router &&
             _router.default.router.pageLoader.prefetched[this.getHref()]
 
           if (this.p && IntersectionObserver && ref && ref.tagName) {

Serverless Mode
General Overall increase ⚠️
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
buildDuration 13.7s 13.7s ⚠️ +75ms
nodeModulesSize 48.9 MB 48.9 MB ⚠️ +26 B
Client Bundles (main, webpack, commons)
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
main-HASH.js gzip 5.13 kB 5.13 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..4cf7.js gzip 13.7 kB 13.7 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 67.5 kB 67.5 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
main-HASH.module.js gzip 4.19 kB 4.19 kB
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 12.5 kB 12.5 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 62.1 kB 62.1 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages Overall increase ⚠️
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
_app.js gzip 1.33 kB 1.33 kB
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.9 kB 2.9 kB ⚠️ +3 B
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.87 kB 9.87 kB ⚠️ +3 B
Client Pages Modern Overall increase ⚠️
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
_app.module.js gzip 757 B 757 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.47 kB 2.48 kB ⚠️ +4 B
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.41 kB 7.42 kB ⚠️ +4 B
Client Build Manifests
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary rendoh/next.js hotfix/link-prefetching Change
_error.js gzip 77.8 kB 77.8 kB
hooks.html gzip 1.06 kB 1.06 kB
index.js gzip 78 kB 78 kB
link.js gzip 80.4 kB 80.4 kB ⚠️ +5 B
routerDirect.js gzip 78.1 kB 78.1 kB
withRouter.js gzip 78.1 kB 78.1 kB
Overall change 393 kB 393 kB ⚠️ +5 B

Commit: 23cf67b

@Timer Timer added this to the 9.2.0 milestone Jan 6, 2020
@Timer Timer closed this in #9987 Jan 7, 2020
@vercel vercel locked as resolved and limited conversation to collaborators Jan 31, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Next.js 9.1.7 Impossible to test next/link with enzyme mount.
3 participants