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

Update to postcss-loader 4.0.2. #17458

Merged
merged 3 commits into from Oct 19, 2020
Merged

Update to postcss-loader 4.0.2. #17458

merged 3 commits into from Oct 19, 2020

Conversation

ludofischer
Copy link
Contributor

@ludofischer ludofischer commented Sep 29, 2020

Update to postcss-loader 4.0.3.

  • postcss-loader 4.0 improves compatibility with webpack 5 (changelog).
  • the 4.0.2 and 4.0.3 release notes also mention improved PostCSS 8 compatibility (see issue PostCSS 8 #17242)
  • postcss-loader by default now detects external PostCss configs and merges them with loader options,
    so I have disabled this to preserve Next’s current behaviour. For example, Next accepts JSON configs with comments,
    but postcss-loader fails to load them.
  • passing an ident field to the postcss-loader options triggers a schema validation error, so when patching
    the loader configuration, I try to detect the postcssOptions field instead
  • in one error overlay integration test, I check whether the error message contains the expected strings
    instead of matching a snapshot exactly, as now the postcss loader inserts the file path from the filesystem
    root in the error message, which we can’t match exactly across test runs
  • updating postcss-loader to 4.0.4 breaks, because 4.0.4 requires schema-utils ^3.0.0, but the ncc build
    prevents postcss-loader from using its own schema-utils

@ijjk
Copy link
Member

ijjk commented Sep 29, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 12.1s 12.1s -19ms
nodeModulesSize 62.9 MB 62.9 MB -181 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
/ failed reqs 0 0
/ total time (seconds) 2.232 2.183 -0.05
/ avg req/sec 1119.95 1145.2 +25.25
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.16 1.204 ⚠️ +0.04
/error-in-render avg req/sec 2156.06 2076.03 ⚠️ -80.03
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 996 B
Overall change 3.01 kB 3.01 kB

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 13.6s 13.6s -34ms
nodeModulesSize 62.9 MB 62.9 MB -181 B
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_error.js 1.05 MB 1.05 MB
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.05 MB 1.05 MB
link.js 1.1 MB 1.1 MB
routerDirect.js 1.09 MB 1.09 MB
withRouter.js 1.09 MB 1.09 MB
Overall change 5.4 MB 5.4 MB
Commit: aa09468

@ijjk
Copy link
Member

ijjk commented Sep 29, 2020

Failing test suites

Commit: aa09468

test/integration/css-customization/test/index.test.js

  • Bad CSS Customization > should've compiled and prefixed
  • CSS Customization > should've compiled and prefixed
  • CSS Customization > should've emitted a source map
  • CSS Customization Array > should've compiled and prefixed
  • CSS Customization Array > should've emitted a source map
Expand output

● CSS Customization › should've compiled and prefixed

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Customization should've compiled and prefixed 1`

Snapshot: "@media (480px <= width < 768px){::placeholder{color:green}}.video{max-width:400px;max-height:300px}"
Received: "@media (min-width:480px) and (max-width:767px){::-moz-placeholder{color:green}:-ms-input-placeholder{color:green}::-ms-input-placeholder{color:green}::placeholder{color:green}}.video{-xyz-max-size:400px 300px}"

  33 |     expect(cssFiles.length).toBe(1)
  34 |     const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8')
> 35 |     expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatchInlineSnapshot(
     |                                                           ^
  36 |       `"@media (480px <= width < 768px){::placeholder{color:green}}.video{max-width:400px;max-height:300px}"`
  37 |     )
  38 | 

  at Object.<anonymous> (integration/css-customization/test/index.test.js:35:59)

● CSS Customization › should've emitted a source map

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Customization should've emitted a source map 1`

- Snapshot  - 1
+ Received  + 1

@@ -1,7 +1,7 @@
  Object {
-   "mappings": "AACA,gCACE,cACE,WACF,CACF,CAGA,OACE,eAA0B,CAA1B,gBACF",
+   "mappings": "AACA,+CACE,mBACE,WACF,CAFA,uBACE,WACF,CAFA,wBACE,WACF,CAFA,cACE,WACF,CACF,CAGA,OACE,yBACF",
    "sourcesContent": Array [
      "/* this should pass through untransformed */
  @media (480px <= width < 768px) {
    ::placeholder {
      color: green;

  53 | 
  54 |     const { version, mappings, sourcesContent } = JSON.parse(cssMapContent)
> 55 |     expect({ version, mappings, sourcesContent }).toMatchInlineSnapshot(`
     |                                                   ^
  56 |       Object {
  57 |         "mappings": "AACA,gCACE,cACE,WACF,CACF,CAGA,OACE,eAA0B,CAA1B,gBACF",
  58 |         "sourcesContent": Array [

  at Object.<anonymous> (integration/css-customization/test/index.test.js:55:51)

● CSS Customization Array › should've compiled and prefixed

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Customization Array should've compiled and prefixed 1`

Snapshot: "@media (480px <= width < 768px){a:before{content:\"\"}::placeholder{color:green}}.video{max-width:6400px;max-height:4800px;max-width:400rem;max-height:300rem}"
Received: "@media (min-width:480px) and (max-width:767px){a:before{content:\"\"}::-moz-placeholder{color:green}:-ms-input-placeholder{color:green}::-ms-input-placeholder{color:green}::placeholder{color:green}}.video{-xyz-max-size:400rem 300rem}"

  132 |     expect(cssFiles.length).toBe(1)
  133 |     const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8')
> 134 |     expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatchInlineSnapshot(
      |                                                           ^
  135 |       `"@media (480px <= width < 768px){a:before{content:\\"\\"}::placeholder{color:green}}.video{max-width:6400px;max-height:4800px;max-width:400rem;max-height:300rem}"`
  136 |     )
  137 | 

  at Object.<anonymous> (integration/css-customization/test/index.test.js:134:59)

● CSS Customization Array › should've emitted a source map

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Customization Array should've emitted a source map 1`

- Snapshot  - 1
+ Received  + 1

@@ -1,7 +1,7 @@
  Object {
-   "mappings": "AACA,gCACE,SACE,UACF,CACA,cACE,WACF,CACF,CAGA,OACE,gBAA4B,CAA5B,iBAA4B,CAA5B,gBAA4B,CAA5B,iBACF",
+   "mappings": "AACA,+CACE,SACE,UACF,CACA,mBACE,WACF,CAFA,uBACE,WACF,CAFA,wBACE,WACF,CAFA,cACE,WACF,CACF,CAGA,OACE,2BACF",
    "sourcesContent": Array [
      "/* this should pass through untransformed */
  @media (480px <= width < 768px) {
    a::before {
      content: '';

  152 | 
  153 |     const { version, mappings, sourcesContent } = JSON.parse(cssMapContent)
> 154 |     expect({ version, mappings, sourcesContent }).toMatchInlineSnapshot(`
      |                                                   ^
  155 |       Object {
  156 |         "mappings": "AACA,gCACE,SACE,UACF,CACA,cACE,WACF,CACF,CAGA,OACE,gBAA4B,CAA5B,iBAA4B,CAA5B,gBAA4B,CAA5B,iBACF",
  157 |         "sourcesContent": Array [

  at Object.<anonymous> (integration/css-customization/test/index.test.js:154:51)

● Bad CSS Customization › should've compiled and prefixed

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `Bad CSS Customization should've compiled and prefixed 1`

Snapshot: ".video{max-width:400px;max-height:300px}"
Received: ".video{max-size:400px 300px}"

  213 |     expect(cssFiles.length).toBe(1)
  214 |     const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8')
> 215 |     expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatchInlineSnapshot(
      |                                                           ^
  216 |       `".video{max-width:400px;max-height:300px}"`
  217 |     )
  218 | 

  at Object.<anonymous> (integration/css-customization/test/index.test.js:215:59)

test/integration/css/test/index.test.js

  • CSS Support > Basic Tailwind CSS > should've compiled and prefixed
  • CSS Support > Tailwind and Purge CSS > should've compiled and prefixed
Expand output

● CSS Support › Basic Tailwind CSS › should've compiled and prefixed

expect(received).toMatch(expected)

Expected pattern: /object-right-bottom/
Received string:  "@tailwind base;@tailwind components;@tailwind utilities;
/*# sourceMappingURL=9144fd2f1b04c241cfdb.css.map*/"

  1023 |       const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8')
  1024 | 
> 1025 |       expect(cssContent).toMatch(/object-right-bottom/) // look for tailwind's CSS
       |                          ^
  1026 |       expect(cssContent).not.toMatch(/tailwind/) // ensure @tailwind was removed
  1027 | 
  1028 |       // Contains a source map

  at Object.<anonymous> (integration/css/test/index.test.js:1025:26)

● CSS Support › Tailwind and Purge CSS › should've compiled and prefixed

expect(received).toMatch(expected)

Expected pattern: /text-blue-500/
Received string:  "@tailwind base;@tailwind components;@tailwind utilities;
/*# sourceMappingURL=9144fd2f1b04c241cfdb.css.map*/"

  1065 | 
  1066 |       expect(cssContent).not.toMatch(/object-right-bottom/) // this was unused and should be gone
> 1067 |       expect(cssContent).toMatch(/text-blue-500/) // this was used
       |                          ^
  1068 |       expect(cssContent).not.toMatch(/tailwind/) // ensure @tailwind was removed
  1069 | 
  1070 |       // Contains a source map

  at Object.<anonymous> (integration/css/test/index.test.js:1067:26)

test/integration/scss/test/index.test.js

  • SCSS Support > Basic Tailwind CSS > should've compiled and prefixed
  • SCSS Support > Tailwind and Purge CSS > should've compiled and prefixed
Expand output

● SCSS Support › Basic Tailwind CSS › should've compiled and prefixed

expect(received).toMatch(expected)

Expected pattern: /object-right-bottom/
Received string:  "@tailwind base;@tailwind components;@tailwind utilities
/*# sourceMappingURL=61b58e3ac5178fe72f42.css.map*/"

  923 |       const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8')
  924 | 
> 925 |       expect(cssContent).toMatch(/object-right-bottom/) // look for tailwind's CSS
      |                          ^
  926 |       expect(cssContent).not.toMatch(/tailwind/) // ensure @tailwind was removed
  927 | 
  928 |       // Contains a source map

  at Object.<anonymous> (integration/scss/test/index.test.js:925:26)

● SCSS Support › Tailwind and Purge CSS › should've compiled and prefixed

expect(received).toMatch(expected)

Expected pattern: /text-blue-500/
Received string:  "@tailwind base;@tailwind components;@tailwind utilities
/*# sourceMappingURL=61b58e3ac5178fe72f42.css.map*/"

  965 | 
  966 |       expect(cssContent).not.toMatch(/object-right-bottom/) // this was unused and should be gone
> 967 |       expect(cssContent).toMatch(/text-blue-500/) // this was used
      |                          ^
  968 |       expect(cssContent).not.toMatch(/tailwind/) // ensure @tailwind was removed
  969 | 
  970 |       // Contains a source map

  at Object.<anonymous> (integration/scss/test/index.test.js:967:26)

@ludofischer ludofischer marked this pull request as draft September 30, 2020 08:19
@ludofischer
Copy link
Contributor Author

This probably breaks something, as CSS transpilation tests are failing.

@ijjk
Copy link
Member

ijjk commented Sep 30, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 13.2s 12.9s -266ms
nodeModulesSize 62.9 MB 62.9 MB -181 B
Page Load Tests Overall increase ✓
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
/ failed reqs 0 0
/ total time (seconds) 2.41 2.432 ⚠️ +0.02
/ avg req/sec 1037.36 1027.77 ⚠️ -9.59
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.295 1.283 -0.01
/error-in-render avg req/sec 1930.94 1948.87 +17.93
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 996 B
Overall change 3.01 kB 3.01 kB

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 14.5s 14.5s ⚠️ +2ms
nodeModulesSize 62.9 MB 62.9 MB -181 B
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_error.js 1.05 MB 1.05 MB
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.05 MB 1.05 MB
link.js 1.1 MB 1.1 MB
routerDirect.js 1.09 MB 1.09 MB
withRouter.js 1.09 MB 1.09 MB
Overall change 5.4 MB 5.4 MB
Commit: abe1027

@ijjk
Copy link
Member

ijjk commented Sep 30, 2020

Failing test suites

Commit: abe1027

test/integration/css-customization/test/index.test.js

  • Bad CSS Customization > should've compiled and prefixed
  • CSS Customization > should've compiled and prefixed
  • CSS Customization > should've emitted a source map
  • CSS Customization Array > should've compiled and prefixed
  • CSS Customization Array > should've emitted a source map
Expand output

● CSS Customization › should've compiled and prefixed

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Customization should've compiled and prefixed 1`

Snapshot: "@media (480px <= width < 768px){::placeholder{color:green}}.video{max-width:400px;max-height:300px}"
Received: "@media (min-width:480px) and (max-width:767px){::-moz-placeholder{color:green}:-ms-input-placeholder{color:green}::-ms-input-placeholder{color:green}::placeholder{color:green}}.video{-xyz-max-size:400px 300px}"

  33 |     expect(cssFiles.length).toBe(1)
  34 |     const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8')
> 35 |     expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatchInlineSnapshot(
     |                                                           ^
  36 |       `"@media (480px <= width < 768px){::placeholder{color:green}}.video{max-width:400px;max-height:300px}"`
  37 |     )
  38 | 

  at Object.<anonymous> (integration/css-customization/test/index.test.js:35:59)

● CSS Customization › should've emitted a source map

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Customization should've emitted a source map 1`

- Snapshot  - 1
+ Received  + 1

@@ -1,7 +1,7 @@
  Object {
-   "mappings": "AACA,gCACE,cACE,WACF,CACF,CAGA,OACE,eAA0B,CAA1B,gBACF",
+   "mappings": "AACA,+CACE,mBACE,WACF,CAFA,uBACE,WACF,CAFA,wBACE,WACF,CAFA,cACE,WACF,CACF,CAGA,OACE,yBACF",
    "sourcesContent": Array [
      "/* this should pass through untransformed */
  @media (480px <= width < 768px) {
    ::placeholder {
      color: green;

  53 | 
  54 |     const { version, mappings, sourcesContent } = JSON.parse(cssMapContent)
> 55 |     expect({ version, mappings, sourcesContent }).toMatchInlineSnapshot(`
     |                                                   ^
  56 |       Object {
  57 |         "mappings": "AACA,gCACE,cACE,WACF,CACF,CAGA,OACE,eAA0B,CAA1B,gBACF",
  58 |         "sourcesContent": Array [

  at Object.<anonymous> (integration/css-customization/test/index.test.js:55:51)

● CSS Customization Array › should've compiled and prefixed

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Customization Array should've compiled and prefixed 1`

Snapshot: "@media (480px <= width < 768px){a:before{content:\"\"}::placeholder{color:green}}.video{max-width:6400px;max-height:4800px;max-width:400rem;max-height:300rem}"
Received: "@media (min-width:480px) and (max-width:767px){a:before{content:\"\"}::-moz-placeholder{color:green}:-ms-input-placeholder{color:green}::-ms-input-placeholder{color:green}::placeholder{color:green}}.video{-xyz-max-size:400rem 300rem}"

  132 |     expect(cssFiles.length).toBe(1)
  133 |     const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8')
> 134 |     expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatchInlineSnapshot(
      |                                                           ^
  135 |       `"@media (480px <= width < 768px){a:before{content:\\"\\"}::placeholder{color:green}}.video{max-width:6400px;max-height:4800px;max-width:400rem;max-height:300rem}"`
  136 |     )
  137 | 

  at Object.<anonymous> (integration/css-customization/test/index.test.js:134:59)

● CSS Customization Array › should've emitted a source map

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Customization Array should've emitted a source map 1`

- Snapshot  - 1
+ Received  + 1

@@ -1,7 +1,7 @@
  Object {
-   "mappings": "AACA,gCACE,SACE,UACF,CACA,cACE,WACF,CACF,CAGA,OACE,gBAA4B,CAA5B,iBAA4B,CAA5B,gBAA4B,CAA5B,iBACF",
+   "mappings": "AACA,+CACE,SACE,UACF,CACA,mBACE,WACF,CAFA,uBACE,WACF,CAFA,wBACE,WACF,CAFA,cACE,WACF,CACF,CAGA,OACE,2BACF",
    "sourcesContent": Array [
      "/* this should pass through untransformed */
  @media (480px <= width < 768px) {
    a::before {
      content: '';

  152 | 
  153 |     const { version, mappings, sourcesContent } = JSON.parse(cssMapContent)
> 154 |     expect({ version, mappings, sourcesContent }).toMatchInlineSnapshot(`
      |                                                   ^
  155 |       Object {
  156 |         "mappings": "AACA,gCACE,SACE,UACF,CACA,cACE,WACF,CACF,CAGA,OACE,gBAA4B,CAA5B,iBAA4B,CAA5B,gBAA4B,CAA5B,iBACF",
  157 |         "sourcesContent": Array [

  at Object.<anonymous> (integration/css-customization/test/index.test.js:154:51)

● Bad CSS Customization › should've compiled and prefixed

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `Bad CSS Customization should've compiled and prefixed 1`

Snapshot: ".video{max-width:400px;max-height:300px}"
Received: ".video{max-size:400px 300px}"

  213 |     expect(cssFiles.length).toBe(1)
  214 |     const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8')
> 215 |     expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatchInlineSnapshot(
      |                                                           ^
  216 |       `".video{max-width:400px;max-height:300px}"`
  217 |     )
  218 | 

  at Object.<anonymous> (integration/css-customization/test/index.test.js:215:59)

test/integration/css/test/index.test.js

  • CSS Support > Basic Tailwind CSS > should've compiled and prefixed
  • CSS Support > Tailwind and Purge CSS > should've compiled and prefixed
Expand output

● CSS Support › Basic Tailwind CSS › should've compiled and prefixed

expect(received).toMatch(expected)

Expected pattern: /object-right-bottom/
Received string:  "@tailwind base;@tailwind components;@tailwind utilities;
/*# sourceMappingURL=9144fd2f1b04c241cfdb.css.map*/"

  1023 |       const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8')
  1024 | 
> 1025 |       expect(cssContent).toMatch(/object-right-bottom/) // look for tailwind's CSS
       |                          ^
  1026 |       expect(cssContent).not.toMatch(/tailwind/) // ensure @tailwind was removed
  1027 | 
  1028 |       // Contains a source map

  at Object.<anonymous> (integration/css/test/index.test.js:1025:26)

● CSS Support › Tailwind and Purge CSS › should've compiled and prefixed

expect(received).toMatch(expected)

Expected pattern: /text-blue-500/
Received string:  "@tailwind base;@tailwind components;@tailwind utilities;
/*# sourceMappingURL=9144fd2f1b04c241cfdb.css.map*/"

  1065 | 
  1066 |       expect(cssContent).not.toMatch(/object-right-bottom/) // this was unused and should be gone
> 1067 |       expect(cssContent).toMatch(/text-blue-500/) // this was used
       |                          ^
  1068 |       expect(cssContent).not.toMatch(/tailwind/) // ensure @tailwind was removed
  1069 | 
  1070 |       // Contains a source map

  at Object.<anonymous> (integration/css/test/index.test.js:1067:26)

@ijjk
Copy link
Member

ijjk commented Sep 30, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 11s 10.9s -61ms
nodeModulesSize 62.9 MB 62.9 MB ⚠️ +94 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
/ failed reqs 0 0
/ total time (seconds) 2.107 2.113 ⚠️ +0.01
/ avg req/sec 1186.69 1183.41 ⚠️ -3.28
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.219 1.26 ⚠️ +0.04
/error-in-render avg req/sec 2051.02 1984.47 ⚠️ -66.55
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 996 B
Overall change 3.01 kB 3.01 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 12.4s 12.4s ⚠️ +42ms
nodeModulesSize 62.9 MB 62.9 MB ⚠️ +94 B
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_error.js 1.05 MB 1.05 MB
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.05 MB 1.05 MB
link.js 1.1 MB 1.1 MB
routerDirect.js 1.09 MB 1.09 MB
withRouter.js 1.09 MB 1.09 MB
Overall change 5.4 MB 5.4 MB
Commit: 8f3f77f

@ijjk
Copy link
Member

ijjk commented Sep 30, 2020

Failing test suites

Commit: 8f3f77f

test/integration/css-customization/test/index.test.js

  • Bad CSS Customization > should've compiled and prefixed
  • CSS Customization > should've compiled and prefixed
  • CSS Customization > should've emitted a source map
  • CSS Customization Array > should've compiled and prefixed
  • CSS Customization Array > should've emitted a source map
Expand output

● CSS Customization › should've compiled and prefixed

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Customization should've compiled and prefixed 1`

Snapshot: "@media (480px <= width < 768px){::placeholder{color:green}}.video{max-width:400px;max-height:300px}"
Received: "@media (480px <= width < 768px){::placeholder{color:green}}.video{-xyz-max-size:400px 300px}"

  33 |     expect(cssFiles.length).toBe(1)
  34 |     const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8')
> 35 |     expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatchInlineSnapshot(
     |                                                           ^
  36 |       `"@media (480px <= width < 768px){::placeholder{color:green}}.video{max-width:400px;max-height:300px}"`
  37 |     )
  38 | 

  at Object.<anonymous> (integration/css-customization/test/index.test.js:35:59)

● CSS Customization › should've emitted a source map

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Customization should've emitted a source map 1`

- Snapshot  - 1
+ Received  + 1

@@ -1,7 +1,7 @@
  Object {
-   "mappings": "AACA,gCACE,cACE,WACF,CACF,CAGA,OACE,eAA0B,CAA1B,gBACF",
+   "mappings": "AACA,gCACE,cACE,WACF,CACF,CAGA,OACE,yBACF",
    "sourcesContent": Array [
      "/* this should pass through untransformed */
  @media (480px <= width < 768px) {
    ::placeholder {
      color: green;

  53 | 
  54 |     const { version, mappings, sourcesContent } = JSON.parse(cssMapContent)
> 55 |     expect({ version, mappings, sourcesContent }).toMatchInlineSnapshot(`
     |                                                   ^
  56 |       Object {
  57 |         "mappings": "AACA,gCACE,cACE,WACF,CACF,CAGA,OACE,eAA0B,CAA1B,gBACF",
  58 |         "sourcesContent": Array [

  at Object.<anonymous> (integration/css-customization/test/index.test.js:55:51)

● CSS Customization Array › should've compiled and prefixed

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Customization Array should've compiled and prefixed 1`

Snapshot: "@media (480px <= width < 768px){a:before{content:\"\"}::placeholder{color:green}}.video{max-width:6400px;max-height:4800px;max-width:400rem;max-height:300rem}"
Received: "@media (480px <= width < 768px){a:before{content:\"\"}::placeholder{color:green}}.video{-xyz-max-size:400rem 300rem}"

  132 |     expect(cssFiles.length).toBe(1)
  133 |     const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8')
> 134 |     expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatchInlineSnapshot(
      |                                                           ^
  135 |       `"@media (480px <= width < 768px){a:before{content:\\"\\"}::placeholder{color:green}}.video{max-width:6400px;max-height:4800px;max-width:400rem;max-height:300rem}"`
  136 |     )
  137 | 

  at Object.<anonymous> (integration/css-customization/test/index.test.js:134:59)

● CSS Customization Array › should've emitted a source map

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Customization Array should've emitted a source map 1`

- Snapshot  - 1
+ Received  + 1

@@ -1,7 +1,7 @@
  Object {
-   "mappings": "AACA,gCACE,SACE,UACF,CACA,cACE,WACF,CACF,CAGA,OACE,gBAA4B,CAA5B,iBAA4B,CAA5B,gBAA4B,CAA5B,iBACF",
+   "mappings": "AACA,gCACE,SACE,UACF,CACA,cACE,WACF,CACF,CAGA,OACE,2BACF",
    "sourcesContent": Array [
      "/* this should pass through untransformed */
  @media (480px <= width < 768px) {
    a::before {
      content: '';

  152 | 
  153 |     const { version, mappings, sourcesContent } = JSON.parse(cssMapContent)
> 154 |     expect({ version, mappings, sourcesContent }).toMatchInlineSnapshot(`
      |                                                   ^
  155 |       Object {
  156 |         "mappings": "AACA,gCACE,SACE,UACF,CACA,cACE,WACF,CACF,CAGA,OACE,gBAA4B,CAA5B,iBAA4B,CAA5B,gBAA4B,CAA5B,iBACF",
  157 |         "sourcesContent": Array [

  at Object.<anonymous> (integration/css-customization/test/index.test.js:154:51)

● Bad CSS Customization › should've compiled and prefixed

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `Bad CSS Customization should've compiled and prefixed 1`

Snapshot: ".video{max-width:400px;max-height:300px}"
Received: ".video{max-size:400px 300px}"

  213 |     expect(cssFiles.length).toBe(1)
  214 |     const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8')
> 215 |     expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatchInlineSnapshot(
      |                                                           ^
  216 |       `".video{max-width:400px;max-height:300px}"`
  217 |     )
  218 | 

  at Object.<anonymous> (integration/css-customization/test/index.test.js:215:59)

test/integration/css-features/test/index.test.js

  • Browserslist: Old > should've emitted a single CSS file
Expand output

● Browserslist: Old › should've emitted a single CSS file

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `Browserslist: Old should've emitted a single CSS file 1`

Snapshot: "a{-webkit-animation:none 0s ease 0s 1 normal none running;animation:none 0s ease 0s 1 normal none running;-webkit-backface-visibility:visible;backface-visibility:visible;background:transparent none repeat 0 0/auto auto padding-box border-box scroll;border:none;border-collapse:separate;-webkit-border-image:none;border-image:none;-webkit-border-radius:0;border-radius:0;border-spacing:0;bottom:auto;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:content-box;box-sizing:content-box;caption-side:top;clear:none;clip:auto;color:#000;-webkit-columns:auto;-webkit-column-count:auto;-webkit-column-fill:balance;column-fill:balance;grid-column-gap:normal;-webkit-column-gap:normal;column-gap:normal;-webkit-column-rule:medium none currentColor;column-rule:medium none currentColor;-webkit-column-span:1;column-span:1;-webkit-column-width:auto;columns:auto;content:normal;counter-increment:none;counter-reset:none;cursor:auto;direction:ltr;display:inline;empty-cells:show;float:none;font-family:serif;font-size:medium;font-style:normal;-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variant:normal;font-weight:400;font-stretch:normal;line-height:normal;height:auto;-ms-hyphens:none;hyphens:none;left:auto;letter-spacing:normal;list-style:disc none outside;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;opacity:1;orphans:2;outline:medium none invert;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;-webkit-perspective:none;perspective:none;-webkit-perspective-origin:50% 50%;perspective-origin:50% 50%;position:static;right:auto;tab-size:8;table-layout:auto;text-align:left;text-align-last:auto;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;top:auto;-webkit-transform:none;transform:none;-webkit-transform-origin:50% 50% 0;transform-origin:50% 50% 0;-webkit-transform-style:flat;transform-style:flat;-webkit-transition:none 0s ease 0s;transition:none 0s ease 0s;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:2;width:auto;word-spacing:normal;z-index:auto;all:initial}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){.image{background-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)}}"
Received: "a{all:initial}@media (min-resolution:2dppx){.image{background-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)}}"

  35 |     const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8')
  36 | 
> 37 |     expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()).toMatchInlineSnapshot(
     |                                                           ^
  38 |       `"a{-webkit-animation:none 0s ease 0s 1 normal none running;animation:none 0s ease 0s 1 normal none running;-webkit-backface-visibility:visible;backface-visibility:visible;background:transparent none repeat 0 0/auto auto padding-box border-box scroll;border:none;border-collapse:separate;-webkit-border-image:none;border-image:none;-webkit-border-radius:0;border-radius:0;border-spacing:0;bottom:auto;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:content-box;box-sizing:content-box;caption-side:top;clear:none;clip:auto;color:#000;-webkit-columns:auto;-webkit-column-count:auto;-webkit-column-fill:balance;column-fill:balance;grid-column-gap:normal;-webkit-column-gap:normal;column-gap:normal;-webkit-column-rule:medium none currentColor;column-rule:medium none currentColor;-webkit-column-span:1;column-span:1;-webkit-column-width:auto;columns:auto;content:normal;counter-increment:none;counter-reset:none;cursor:auto;direction:ltr;display:inline;empty-cells:show;float:none;font-family:serif;font-size:medium;font-style:normal;-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variant:normal;font-weight:400;font-stretch:normal;line-height:normal;height:auto;-ms-hyphens:none;hyphens:none;left:auto;letter-spacing:normal;list-style:disc none outside;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;opacity:1;orphans:2;outline:medium none invert;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;-webkit-perspective:none;perspective:none;-webkit-perspective-origin:50% 50%;perspective-origin:50% 50%;position:static;right:auto;tab-size:8;table-layout:auto;text-align:left;text-align-last:auto;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;top:auto;-webkit-transform:none;transform:none;-webkit-transform-origin:50% 50% 0;transform-origin:50% 50% 0;-webkit-transform-style:flat;transform-style:flat;-webkit-transition:none 0s ease 0s;transition:none 0s ease 0s;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:2;width:auto;word-spacing:normal;z-index:auto;all:initial}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){.image{background-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)}}"`
  39 |     )
  40 |   })

  at Object.<anonymous> (integration/css-features/test/index.test.js:37:59)

test/integration/css/test/index.test.js

  • CSS Support > Basic Tailwind CSS > should've compiled and prefixed
  • CSS Support > CSS Compilation and Prefixing > should've compiled and prefixed
  • CSS Support > CSS Compilation and Prefixing > should've emitted a source map
  • CSS Support > Tailwind and Purge CSS > should've compiled and prefixed
Expand output

● CSS Support › CSS Compilation and Prefixing › should've compiled and prefixed

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Support CSS Compilation and Prefixing should've compiled and prefixed 1`

Snapshot: "@media (min-width:480px) and (max-width:767px){::-moz-placeholder{color:green}:-ms-input-placeholder{color:green}::-ms-input-placeholder{color:green}::placeholder{color:green}}.flex-parsing{flex:0 0 calc(50% - var(--vertical-gutter))}.transform-parsing{transform:translate3d(0,0)}.css-grid-shorthand{grid-column:span 2}.g-docs-sidenav .filter::-webkit-input-placeholder{opacity:80%}"
Received: "@media (480px <= width < 768px){::placeholder{color:green}}.flex-parsing{flex:0 0 calc(50% - var(--vertical-gutter))}.transform-parsing{transform:translate3d(0,0)}.css-grid-shorthand{grid-column:span 2}.g-docs-sidenav .filter::-webkit-input-placeholder{opacity:80%}"

  163 |       expect(
  164 |         cssContent.replace(/\/\*.*?\*\//g, '').trim()
> 165 |       ).toMatchInlineSnapshot(
      |         ^
  166 |         `"@media (min-width:480px) and (max-width:767px){::-moz-placeholder{color:green}:-ms-input-placeholder{color:green}::-ms-input-placeholder{color:green}::placeholder{color:green}}.flex-parsing{flex:0 0 calc(50% - var(--vertical-gutter))}.transform-parsing{transform:translate3d(0,0)}.css-grid-shorthand{grid-column:span 2}.g-docs-sidenav .filter::-webkit-input-placeholder{opacity:80%}"`
  167 |       )
  168 | 

  at Object.<anonymous> (integration/css/test/index.test.js:165:9)

● CSS Support › CSS Compilation and Prefixing › should've emitted a source map

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `CSS Support CSS Compilation and Prefixing should've emitted a source map 1`

- Snapshot  - 1
+ Received  + 1

@@ -1,7 +1,7 @@
  Object {
-   "mappings": "AAAA,+CACE,mBACE,WACF,CAFA,uBACE,WACF,CAFA,wBACE,WACF,CAFA,cACE,WACF,CACF,CAEA,cACE,2CACF,CAEA,mBACE,0BACF,CAEA,oBACE,kBACF,CAEA,mDACE,WACF",
+   "mappings": "AAAA,gCACE,cACE,WACF,CACF,CAEA,cACE,2CACF,CAEA,mBACE,0BACF,CAEA,oBACE,kBACF,CAEA,mDACE,WACF",
    "sourcesContent": Array [
      "@media (480px <= width < 768px) {
    ::placeholder {
      color: green;
    }

  183 | 
  184 |       const { version, mappings, sourcesContent } = JSON.parse(cssMapContent)
> 185 |       expect({ version, mappings, sourcesContent }).toMatchInlineSnapshot(`
      |                                                     ^
  186 |         Object {
  187 |           "mappings": "AAAA,+CACE,mBACE,WACF,CAFA,uBACE,WACF,CAFA,wBACE,WACF,CAFA,cACE,WACF,CACF,CAEA,cACE,2CACF,CAEA,mBACE,0BACF,CAEA,oBACE,kBACF,CAEA,mDACE,WACF",
  188 |           "sourcesContent": Array [

  at Object.<anonymous> (integration/css/test/index.test.js:185:53)

● CSS Support › Basic Tailwind CSS › should've compiled and prefixed

expect(received).toMatch(expected)

Expected pattern: /object-right-bottom/
Received string:  "@tailwind base;@tailwind components;@tailwind utilities;
/*# sourceMappingURL=9144fd2f1b04c241cfdb.css.map*/"

  1023 |       const cssContent = await readFile(join(cssFolder, cssFiles[0]), 'utf8')
  1024 | 
> 1025 |       expect(cssContent).toMatch(/object-right-bottom/) // look for tailwind's CSS
       |                          ^
  1026 |       expect(cssContent).not.toMatch(/tailwind/) // ensure @tailwind was removed
  1027 | 
  1028 |       // Contains a source map

  at Object.<anonymous> (integration/css/test/index.test.js:1025:26)

● CSS Support › Tailwind and Purge CSS › should've compiled and prefixed

expect(received).toMatch(expected)

Expected pattern: /text-blue-500/
Received string:  "@tailwind base;@tailwind components;@tailwind utilities;
/*# sourceMappingURL=9144fd2f1b04c241cfdb.css.map*/"

  1065 | 
  1066 |       expect(cssContent).not.toMatch(/object-right-bottom/) // this was unused and should be gone
> 1067 |       expect(cssContent).toMatch(/text-blue-500/) // this was used
       |                          ^
  1068 |       expect(cssContent).not.toMatch(/tailwind/) // ensure @tailwind was removed
  1069 | 
  1070 |       // Contains a source map

  at Object.<anonymous> (integration/css/test/index.test.js:1067:26)

@ijjk
Copy link
Member

ijjk commented Sep 30, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 12.3s 12.1s -176ms
nodeModulesSize 62.9 MB 62.9 MB ⚠️ +272 B
Page Load Tests Overall increase ✓
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
/ failed reqs 0 0
/ total time (seconds) 2.239 2.155 -0.08
/ avg req/sec 1116.75 1160.07 +43.32
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.218 1.17 -0.05
/error-in-render avg req/sec 2052.41 2136.1 +83.69
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 996 B
Overall change 3.01 kB 3.01 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 13.8s 13.4s -363ms
nodeModulesSize 62.9 MB 62.9 MB ⚠️ +272 B
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_error.js 1.05 MB 1.05 MB
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.05 MB 1.05 MB
link.js 1.1 MB 1.1 MB
routerDirect.js 1.09 MB 1.09 MB
withRouter.js 1.09 MB 1.09 MB
Overall change 5.4 MB 5.4 MB
Commit: ca7e764

@ijjk
Copy link
Member

ijjk commented Sep 30, 2020

Failing test suites

Commit: a430f64

test/integration/css-client-nav/test/index.test.js

  • CSS Module client-side navigation in Production > should be able to client-side navigate from red to blue
  • CSS Module client-side navigation in Production > should be able to client-side navigate from blue to red
  • CSS Module client-side navigation in Production > should be able to client-side navigate from none to red
  • CSS Module client-side navigation in Production > should be able to client-side navigate from none to blue
Expand output

● CSS Module client-side navigation in Production › should be able to client-side navigate from red to blue

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● CSS Module client-side navigation in Production › should be able to client-side navigate from blue to red

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● CSS Module client-side navigation in Production › should be able to client-side navigate from none to red

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● CSS Module client-side navigation in Production › should be able to client-side navigate from none to blue

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Test suite failed to run

TypeError: Cannot read property 'pid' of undefined

  275 | export async function killApp(instance) {
  276 |   await new Promise((resolve, reject) => {
> 277 |     treeKill(instance.pid, (err) => {
      |                       ^
  278 |       if (err) {
  279 |         if (
  280 |           process.platform === 'win32' &&

  at lib/next-test-utils.js:277:23
  at killApp (lib/next-test-utils.js:276:9)
  at integration/css-client-nav/test/index.test.js:34:11

test/integration/dynamic-routing/test/index.test.js

  • Dynamic Routing > dev mode > [nested ssg: catch all] should pass param in getStaticProps during SSR
  • Dynamic Routing > dev mode > [nested ssg: catch all] should pass params in getStaticProps during SSR
  • Dynamic Routing > dev mode > [predefined ssg: catch all] should pass param in getStaticProps during SSR
  • Dynamic Routing > dev mode > [predefined ssg: catch all] should pass params in getStaticProps during SSR
  • Dynamic Routing > dev mode > [predefined ssg: prerendered catch all] should pass param in getStaticProps during SSR
  • Dynamic Routing > dev mode > [predefined ssg: prerendered catch all] should pass params in getStaticProps during SSR
  • Dynamic Routing > dev mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (single)
  • Dynamic Routing > dev mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (single interpolated)
  • Dynamic Routing > dev mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (multi)
  • Dynamic Routing > dev mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (multi) no as
  • Dynamic Routing > dev mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (multi interpolated)
  • Dynamic Routing > dev mode > [nested ssg: catch-all] should pass params in getStaticProps during client navigation (single)
  • Dynamic Routing > dev mode > [nested ssg: catch-all] should pass params in getStaticProps during client navigation (multi)
  • Dynamic Routing > dev mode > should update dynamic values on mount
  • Dynamic Routing > dev mode > should update with a hash in the URL
  • Dynamic Routing > dev mode > should scroll to a hash on mount
  • Dynamic Routing > dev mode > should scroll to a hash on client-side navigation
  • Dynamic Routing > dev mode > should respond with bad request with invalid encoding
  • Dynamic Routing > dev mode > should preload buildManifest for auto-export dynamic pages
  • Dynamic Routing > dev mode > should resolve dynamic route href for page added later
  • Dynamic Routing > dev mode > should show error when interpolating fails for href
  • Dynamic Routing > dev mode > should work with HMR correctly
  • Dynamic Routing > production mode > should not have any query values when not defined
  • Dynamic Routing > production mode > should render normal route
  • Dynamic Routing > production mode > should render another normal route
  • Dynamic Routing > production mode > should render dynamic page
  • Dynamic Routing > production mode > should prioritize a non-dynamic page
  • Dynamic Routing > production mode > should render nested dynamic page
  • Dynamic Routing > production mode > should render optional dynamic page
  • Dynamic Routing > production mode > should render nested optional dynamic page
  • Dynamic Routing > production mode > should not error when requesting dynamic page with /api
  • Dynamic Routing > production mode > should render dynamic route with query
  • Dynamic Routing > production mode > should navigate to a dynamic page successfully
  • Dynamic Routing > production mode > should navigate to a dynamic page successfully no as
  • Dynamic Routing > production mode > should navigate to a dynamic page successfully interpolated
  • Dynamic Routing > production mode > should navigate to a dynamic page successfully interpolated with additional query values
  • Dynamic Routing > production mode > should allow calling Router.push on mount successfully
  • Dynamic Routing > production mode > should navigate optional dynamic page
  • Dynamic Routing > production mode > should navigate optional dynamic page with value
  • Dynamic Routing > production mode > should navigate to a nested dynamic page successfully
  • Dynamic Routing > production mode > should navigate to a nested dynamic page successfully no as
  • Dynamic Routing > production mode > should navigate to a nested dynamic page successfully interpolated
  • Dynamic Routing > production mode > should pass params in getInitialProps during SSR
  • Dynamic Routing > production mode > should pass params in getInitialProps during client navigation
  • Dynamic Routing > production mode > [catch all] should not match root on SSR
  • Dynamic Routing > production mode > [catch all] should pass param in getInitialProps during SSR
  • Dynamic Routing > production mode > [catch all] should pass params in getInitialProps during SSR
  • Dynamic Routing > production mode > [catch all] should strip trailing slash
  • Dynamic Routing > production mode > [catch all] should not decode slashes (start)
  • Dynamic Routing > production mode > [catch all] should not decode slashes (end)
  • Dynamic Routing > production mode > [catch all] should not decode slashes (middle)
  • Dynamic Routing > production mode > [catch-all] should pass params in getInitialProps during client navigation (single)
  • Dynamic Routing > production mode > [catch-all] should pass params in getInitialProps during client navigation (multi)
  • Dynamic Routing > production mode > [catch-all] should pass params in getInitialProps during client navigation (encoded)
  • Dynamic Routing > production mode > [catch-all] shouldn't fail on colon followed by double digits in the path
  • Dynamic Routing > production mode > [ssg: catch all] should pass param in getStaticProps during SSR
  • Dynamic Routing > production mode > [ssg: catch all] should pass params in getStaticProps during SSR
  • Dynamic Routing > production mode > [nested ssg: catch all] should pass param in getStaticProps during SSR
  • Dynamic Routing > production mode > [nested ssg: catch all] should pass params in getStaticProps during SSR
  • Dynamic Routing > production mode > [predefined ssg: catch all] should pass param in getStaticProps during SSR
  • Dynamic Routing > production mode > [predefined ssg: catch all] should pass params in getStaticProps during SSR
  • Dynamic Routing > production mode > [predefined ssg: prerendered catch all] should pass param in getStaticProps during SSR
  • Dynamic Routing > production mode > [predefined ssg: prerendered catch all] should pass params in getStaticProps during SSR
  • Dynamic Routing > production mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (single)
  • Dynamic Routing > production mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (single interpolated)
  • Dynamic Routing > production mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (multi)
  • Dynamic Routing > production mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (multi) no as
  • Dynamic Routing > production mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (multi interpolated)
  • Dynamic Routing > production mode > [nested ssg: catch-all] should pass params in getStaticProps during client navigation (single)
  • Dynamic Routing > production mode > [nested ssg: catch-all] should pass params in getStaticProps during client navigation (multi)
  • Dynamic Routing > production mode > should update dynamic values on mount
  • Dynamic Routing > production mode > should not have placeholder query values for SSS
  • Dynamic Routing > production mode > should update with a hash in the URL
  • Dynamic Routing > production mode > should scroll to a hash on mount
  • Dynamic Routing > production mode > should scroll to a hash on client-side navigation
  • Dynamic Routing > production mode > should prioritize public files over dynamic route
  • Dynamic Routing > production mode > should serve file with space from public folder
  • Dynamic Routing > production mode > should serve file with plus from public folder
  • Dynamic Routing > production mode > should serve file from public folder encoded
  • Dynamic Routing > production mode > should serve file with %20 from public folder
  • Dynamic Routing > production mode > should serve file with space from static folder
  • Dynamic Routing > production mode > should serve file with plus from static folder
  • Dynamic Routing > production mode > should serve file from static folder encoded
  • Dynamic Routing > production mode > should serve file with %20 from static folder
  • Dynamic Routing > production mode > should respond with bad request with invalid encoding
  • Dynamic Routing > production mode > should preload buildManifest for auto-export dynamic pages
  • Dynamic Routing > production mode > should not preload buildManifest for non-auto export dynamic pages
  • Dynamic Routing > production mode > should output a routes-manifest correctly
  • Dynamic Routing > serverless mode > should not have any query values when not defined
  • Dynamic Routing > serverless mode > should render normal route
  • Dynamic Routing > serverless mode > should render another normal route
  • Dynamic Routing > serverless mode > should render dynamic page
  • Dynamic Routing > serverless mode > should prioritize a non-dynamic page
  • Dynamic Routing > serverless mode > should render nested dynamic page
  • Dynamic Routing > serverless mode > should render optional dynamic page
  • Dynamic Routing > serverless mode > should render nested optional dynamic page
  • Dynamic Routing > serverless mode > should not error when requesting dynamic page with /api
  • Dynamic Routing > serverless mode > should render dynamic route with query
  • Dynamic Routing > serverless mode > should navigate to a dynamic page successfully
  • Dynamic Routing > serverless mode > should navigate to a dynamic page successfully no as
  • Dynamic Routing > serverless mode > should navigate to a dynamic page successfully interpolated
  • Dynamic Routing > serverless mode > should navigate to a dynamic page successfully interpolated with additional query values
  • Dynamic Routing > serverless mode > should allow calling Router.push on mount successfully
  • Dynamic Routing > serverless mode > should navigate optional dynamic page
  • Dynamic Routing > serverless mode > should navigate optional dynamic page with value
  • Dynamic Routing > serverless mode > should navigate to a nested dynamic page successfully
  • Dynamic Routing > serverless mode > should navigate to a nested dynamic page successfully no as
  • Dynamic Routing > serverless mode > should navigate to a nested dynamic page successfully interpolated
  • Dynamic Routing > serverless mode > should pass params in getInitialProps during SSR
  • Dynamic Routing > serverless mode > should pass params in getInitialProps during client navigation
  • Dynamic Routing > serverless mode > [catch all] should not match root on SSR
  • Dynamic Routing > serverless mode > [catch all] should pass param in getInitialProps during SSR
  • Dynamic Routing > serverless mode > [catch all] should pass params in getInitialProps during SSR
  • Dynamic Routing > serverless mode > [catch all] should strip trailing slash
  • Dynamic Routing > serverless mode > [catch all] should not decode slashes (start)
  • Dynamic Routing > serverless mode > [catch all] should not decode slashes (end)
  • Dynamic Routing > serverless mode > [catch all] should not decode slashes (middle)
  • Dynamic Routing > serverless mode > [catch-all] should pass params in getInitialProps during client navigation (single)
  • Dynamic Routing > serverless mode > [catch-all] should pass params in getInitialProps during client navigation (multi)
  • Dynamic Routing > serverless mode > [catch-all] should pass params in getInitialProps during client navigation (encoded)
  • Dynamic Routing > serverless mode > [catch-all] shouldn't fail on colon followed by double digits in the path
  • Dynamic Routing > serverless mode > [ssg: catch all] should pass param in getStaticProps during SSR
  • Dynamic Routing > serverless mode > [ssg: catch all] should pass params in getStaticProps during SSR
  • Dynamic Routing > serverless mode > [nested ssg: catch all] should pass param in getStaticProps during SSR
  • Dynamic Routing > serverless mode > [nested ssg: catch all] should pass params in getStaticProps during SSR
  • Dynamic Routing > serverless mode > [predefined ssg: catch all] should pass param in getStaticProps during SSR
  • Dynamic Routing > serverless mode > [predefined ssg: catch all] should pass params in getStaticProps during SSR
  • Dynamic Routing > serverless mode > [predefined ssg: prerendered catch all] should pass param in getStaticProps during SSR
  • Dynamic Routing > serverless mode > [predefined ssg: prerendered catch all] should pass params in getStaticProps during SSR
  • Dynamic Routing > serverless mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (single)
  • Dynamic Routing > serverless mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (single interpolated)
  • Dynamic Routing > serverless mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (multi)
  • Dynamic Routing > serverless mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (multi) no as
  • Dynamic Routing > serverless mode > [ssg: catch-all] should pass params in getStaticProps during client navigation (multi interpolated)
  • Dynamic Routing > serverless mode > [nested ssg: catch-all] should pass params in getStaticProps during client navigation (single)
  • Dynamic Routing > serverless mode > [nested ssg: catch-all] should pass params in getStaticProps during client navigation (multi)
  • Dynamic Routing > serverless mode > should update dynamic values on mount
  • Dynamic Routing > serverless mode > should not have placeholder query values for SSS
  • Dynamic Routing > serverless mode > should update with a hash in the URL
  • Dynamic Routing > serverless mode > should scroll to a hash on mount
  • Dynamic Routing > serverless mode > should scroll to a hash on client-side navigation
  • Dynamic Routing > serverless mode > should prioritize public files over dynamic route
  • Dynamic Routing > serverless mode > should serve file with space from public folder
  • Dynamic Routing > serverless mode > should serve file with plus from public folder
  • Dynamic Routing > serverless mode > should serve file from public folder encoded
  • Dynamic Routing > serverless mode > should serve file with %20 from public folder
  • Dynamic Routing > serverless mode > should serve file with space from static folder
  • Dynamic Routing > serverless mode > should serve file with plus from static folder
  • Dynamic Routing > serverless mode > should serve file from static folder encoded
  • Dynamic Routing > serverless mode > should serve file with %20 from static folder
  • Dynamic Routing > serverless mode > should respond with bad request with invalid encoding
  • Dynamic Routing > serverless mode > should preload buildManifest for auto-export dynamic pages
  • Dynamic Routing > serverless mode > should not preload buildManifest for non-auto export dynamic pages
  • Dynamic Routing > serverless mode > should output a routes-manifest correctly
Expand output

● Dynamic Routing › dev mode › [nested ssg: catch all] should pass param in getStaticProps during SSR

SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse (<anonymous>)

  439 |       `/_next/data/${buildId}/p1/p2/nested-all-ssg/test1.json`
  440 |     )
> 441 |     expect(JSON.parse(data).pageProps.params).toEqual({ rest: ['test1'] })
      |                 ^
  442 |   })
  443 | 
  444 |   it('[nested ssg: catch all] should pass params in getStaticProps during SSR', async () => {

  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:441:17)
      at runMicrotasks (<anonymous>)

● Dynamic Routing › dev mode › [nested ssg: catch all] should pass params in getStaticProps during SSR

SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse (<anonymous>)

  447 |       `/_next/data/${buildId}/p1/p2/nested-all-ssg/test1/test2.json`
  448 |     )
> 449 |     expect(JSON.parse(data).pageProps.params).toEqual({
      |                 ^
  450 |       rest: ['test1', 'test2'],
  451 |     })
  452 |   })

  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:449:17)
      at runMicrotasks (<anonymous>)

● Dynamic Routing › dev mode › [predefined ssg: catch all] should pass param in getStaticProps during SSR

SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse (<anonymous>)

  457 |       `/_next/data/${buildId}/p1/p2/predefined-ssg/test1.json`
  458 |     )
> 459 |     expect(JSON.parse(data).pageProps.params).toEqual({ rest: ['test1'] })
      |                 ^
  460 |   })
  461 | 
  462 |   it('[predefined ssg: catch all] should pass params in getStaticProps during SSR', async () => {

  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:459:17)
      at runMicrotasks (<anonymous>)

● Dynamic Routing › dev mode › [predefined ssg: catch all] should pass params in getStaticProps during SSR

SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse (<anonymous>)

  465 |       `/_next/data/${buildId}/p1/p2/predefined-ssg/test1/test2.json`
  466 |     )
> 467 |     expect(JSON.parse(data).pageProps.params).toEqual({
      |                 ^
  468 |       rest: ['test1', 'test2'],
  469 |     })
  470 |   })

  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:467:17)
      at runMicrotasks (<anonymous>)

● Dynamic Routing › dev mode › [predefined ssg: prerendered catch all] should pass param in getStaticProps during SSR

SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse (<anonymous>)

  475 |       `/_next/data/${buildId}/p1/p2/predefined-ssg/one-level.json`
  476 |     )
> 477 |     expect(JSON.parse(data).pageProps.params).toEqual({ rest: ['one-level'] })
      |                 ^
  478 |   })
  479 | 
  480 |   it('[predefined ssg: prerendered catch all] should pass params in getStaticProps during SSR', async () => {

  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:477:17)
      at runMicrotasks (<anonymous>)

● Dynamic Routing › dev mode › [predefined ssg: prerendered catch all] should pass params in getStaticProps during SSR

SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse (<anonymous>)

  483 |       `/_next/data/${buildId}/p1/p2/predefined-ssg/1st-level/2nd-level.json`
  484 |     )
> 485 |     expect(JSON.parse(data).pageProps.params).toEqual({
      |                 ^
  486 |       rest: ['1st-level', '2nd-level'],
  487 |     })
  488 |   })

  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:485:17)
      at runMicrotasks (<anonymous>)

● Dynamic Routing › dev mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (single)

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#ssg-catch-all-single"}
  (Session info: headless chrome=85.0.4183.102)

  493 |       browser = await webdriver(appPort, '/')
  494 |       await browser.eval('window.beforeNav = 1')
> 495 |       await browser.elementByCss('#ssg-catch-all-single').click()
      |       ^
  496 |       await browser.waitForElementByCss('#all-ssg-content')
  497 | 
  498 |       expect(await browser.eval('window.beforeNav')).toBe(1)

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
      at runMicrotasks (<anonymous>)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:495:7)

● Dynamic Routing › dev mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (single interpolated)

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#ssg-catch-all-single-interpolated"}
  (Session info: headless chrome=85.0.4183.102)

  511 |       await browser.eval('window.beforeNav = 1')
  512 | 
> 513 |       const href = await browser
      |                    ^
  514 |         .elementByCss('#ssg-catch-all-single-interpolated')
  515 |         .getAttribute('href')
  516 | 

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
      at runMicrotasks (<anonymous>)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:513:20)

● Dynamic Routing › dev mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (multi)

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#ssg-catch-all-multi"}
  (Session info: headless chrome=85.0.4183.102)

  534 |       browser = await webdriver(appPort, '/')
  535 |       await browser.eval('window.beforeNav = 1')
> 536 |       await browser.elementByCss('#ssg-catch-all-multi').click()
      |       ^
  537 |       await browser.waitForElementByCss('#all-ssg-content')
  538 | 
  539 |       expect(await browser.eval('window.beforeNav')).toBe(1)

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
      at runMicrotasks (<anonymous>)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:536:7)

● Dynamic Routing › dev mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (multi) no as

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#ssg-catch-all-multi-no-as"}
  (Session info: headless chrome=85.0.4183.102)

  551 |       browser = await webdriver(appPort, '/')
  552 |       await browser.eval('window.beforeNav = 1')
> 553 |       await browser.elementByCss('#ssg-catch-all-multi-no-as').click()
      |       ^
  554 |       await browser.waitForElementByCss('#all-ssg-content')
  555 | 
  556 |       expect(await browser.eval('window.beforeNav')).toBe(1)

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
      at runMicrotasks (<anonymous>)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:553:7)

● Dynamic Routing › dev mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (multi interpolated)

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#ssg-catch-all-multi-interpolated"}
  (Session info: headless chrome=85.0.4183.102)

  569 |       await browser.eval('window.beforeNav = 1')
  570 | 
> 571 |       const href = await browser
      |                    ^
  572 |         .elementByCss('#ssg-catch-all-multi-interpolated')
  573 |         .getAttribute('href')
  574 | 

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
      at runMicrotasks (<anonymous>)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:571:20)

● Dynamic Routing › dev mode › [nested ssg: catch-all] should pass params in getStaticProps during client navigation (single)

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#nested-ssg-catch-all-single"}
  (Session info: headless chrome=85.0.4183.102)

  591 |     try {
  592 |       browser = await webdriver(appPort, '/')
> 593 |       await browser.elementByCss('#nested-ssg-catch-all-single').click()
      |       ^
  594 |       await browser.waitForElementByCss('#nested-all-ssg-content')
  595 | 
  596 |       const text = await browser.elementByCss('#nested-all-ssg-content').text()

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
      at runMicrotasks (<anonymous>)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:593:7)

● Dynamic Routing › dev mode › [nested ssg: catch-all] should pass params in getStaticProps during client navigation (multi)

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#nested-ssg-catch-all-multi"}
  (Session info: headless chrome=85.0.4183.102)

  605 |     try {
  606 |       browser = await webdriver(appPort, '/')
> 607 |       await browser.elementByCss('#nested-ssg-catch-all-multi').click()
      |       ^
  608 |       await browser.waitForElementByCss('#nested-all-ssg-content')
  609 | 
  610 |       const text = await browser.elementByCss('#nested-all-ssg-content').text()

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
      at runMicrotasks (<anonymous>)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:607:7)

● Dynamic Routing › dev mode › should update dynamic values on mount

expect(received).toMatch(expected)

Expected pattern: /onmpost:.*pending/
Received string:  "<!DOCTYPE html><html><head><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width\"/><noscript data-n-css=\"true\"></noscript><link rel=\"preload\" href=\"/_next/static/chunks/main.js?ts=1601482520583\" as=\"script\" crossorigin=\"anonymous\"/><link rel=\"preload\" href=\"/_next/static/chunks/webpack.js?ts=1601482520583\" as=\"script\" crossorigin=\"anonymous\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/_app.js?ts=1601482520583\" as=\"script\" crossorigin=\"anonymous\"/><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/chunks/react-refresh.js?ts=1601482520583\" crossorigin=\"anonymous\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\" crossorigin=\"anonymous\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"ModuleBuildError\",\"message\":\"Module build failed (from /home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js):\\nValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.\\n - options has an unknown property 'plugins'. These properties are valid:\\n   object { postcssOptions?, execute?, sourceMap? }\\n    at validate (/home/runner/work/next.js/next.js/node_modules/schema-utils/dist/validate.js:98:11)\\n    at Object.loader (/home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js:1:103597)\",\"stack\":\"ModuleBuildError: Module build failed (from /home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js):\\nValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.\\n - options has an unknown property 'plugins'. These properties are valid:\\n   object { postcssOptions?, execute?, sourceMap? }\\n    at validate (/home/runner/work/next.js/next.js/node_modules/schema-utils/dist/validate.js:98:11)\\n    at Object.loader (/home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js:1:103597)\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModule.js:316:20\\n    at /home/runner/work/next.js/next.js/node_modules/loader-runner/lib/LoaderRunner.js:367:11\\n    at /home/runner/work/next.js/next.js/node_modules/loader-runner/lib/LoaderRunner.js:233:18\"},\"gip\":true,\"head\":[[\"meta\",{\"charSet\":\"utf-8\"}],[\"meta\",{\"name\":\"viewport\",\"content\":\"width=device-width\"}]]}</script><script crossorigin=\"anonymous\" nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1601482520583\"></script><script src=\"/_next/static/chunks/main.js?ts=1601482520583\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/chunks/webpack.js?ts=1601482520583\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/chunks/pages/_app.js?ts=1601482520583\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/development/_buildManifest.js?ts=1601482520583\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/development/_buildManifest.module.js?ts=1601482520583\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/development/_ssgManifest.js?ts=1601482520583\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/development/_ssgManifest.module.js?ts=1601482520583\" crossorigin=\"anonymous\"></script></body></html>"

  617 |   it('should update dynamic values on mount', async () => {
  618 |     const html = await renderViaHTTP(appPort, '/on-mount/post-1')
> 619 |     expect(html).toMatch(/onmpost:.*pending/)
      |                  ^
  620 | 
  621 |     const browser = await webdriver(appPort, '/on-mount/post-1')
  622 |     const text = await browser.eval(`document.body.innerHTML`)

  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:619:18)
      at runMicrotasks (<anonymous>)

● Dynamic Routing › dev mode › should update with a hash in the URL

expect(received).toMatch(expected)

Expected pattern: /onmpost:.*post-1/
Received string:  "<div id=\"__next\"></div><script src=\"/_next/static/chunks/react-refresh.js?ts=1601482520866\" crossorigin=\"anonymous\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\" crossorigin=\"anonymous\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"ModuleBuildError\",\"message\":\"Module build failed (from /home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js):\\nValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.\\n - options has an unknown property 'plugins'. These properties are valid:\\n   object { postcssOptions?, execute?, sourceMap? }\\n    at validate (/home/runner/work/next.js/next.js/node_modules/schema-utils/dist/validate.js:98:11)\\n    at Object.loader (/home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js:1:103597)\",\"stack\":\"ModuleBuildError: Module build failed (from /home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js):\\nValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.\\n - options has an unknown property 'plugins'. These properties are valid:\\n   object { postcssOptions?, execute?, sourceMap? }\\n    at validate (/home/runner/work/next.js/next.js/node_modules/schema-utils/dist/validate.js:98:11)\\n    at Object.loader (/home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js:1:103597)\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModule.js:316:20\\n    at /home/runner/work/next.js/next.js/node_modules/loader-runner/lib/LoaderRunner.js:367:11\\n    at /home/runner/work/next.js/next.js/node_modules/loader-runner/lib/LoaderRunner.js:233:18\"},\"gip\":true,\"head\":[[\"meta\",{\"charSet\":\"utf-8\"}],[\"meta\",{\"name\":\"viewport\",\"content\":\"width=device-width\"}]]}</script><script crossorigin=\"anonymous\" nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1601482520866\"></script><script src=\"/_next/static/chunks/main.js?ts=1601482520866\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/chunks/webpack.js?ts=1601482520866\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/chunks/pages/_app.js?ts=1601482520866\" crossorigin=\"anonymous\"></script><script crossorigin=\"anonymous\" src=\"/_next/static/chunks/pages/_error.js\"></script><script src=\"/_next/static/development/_buildManifest.js?ts=1601482520866\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/development/_buildManifest.module.js?ts=1601482520866\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/development/_ssgManifest.js?ts=1601482520866\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/development/_ssgManifest.module.js?ts=1601482520866\" crossorigin=\"anonymous\"></script><div id=\"__next-build-watcher\" style=\"position: fixed; bottom: 10px; right: 20px; width: 0px; height: 0px; z-index: 99999;\"></div><div id=\"__next-prerender-indicator\" style=\"position: fixed; bottom: 20px; right: 10px; width: 0px; height: 0px; z-index: 99998; transition: all 100ms ease 0s;\"></div><nextjs-portal></nextjs-portal>"

  632 |     const browser = await webdriver(appPort, '/on-mount/post-1#abc')
  633 |     const text = await browser.eval(`document.body.innerHTML`)
> 634 |     expect(text).toMatch(/onmpost:.*post-1/)
      |                  ^
  635 |   })
  636 | 
  637 |   it('should scroll to a hash on mount', async () => {

  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:634:18)
      at runMicrotasks (<anonymous>)

● Dynamic Routing › dev mode › should scroll to a hash on mount

expect(received).toMatch(expected)

Expected pattern: /onmpost:.*post-1/
Received string:  "<div id=\"__next\"></div><script src=\"/_next/static/chunks/react-refresh.js?ts=1601482521514\" crossorigin=\"anonymous\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\" crossorigin=\"anonymous\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"ModuleBuildError\",\"message\":\"Module build failed (from /home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js):\\nValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.\\n - options has an unknown property 'plugins'. These properties are valid:\\n   object { postcssOptions?, execute?, sourceMap? }\\n    at validate (/home/runner/work/next.js/next.js/node_modules/schema-utils/dist/validate.js:98:11)\\n    at Object.loader (/home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js:1:103597)\",\"stack\":\"ModuleBuildError: Module build failed (from /home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js):\\nValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.\\n - options has an unknown property 'plugins'. These properties are valid:\\n   object { postcssOptions?, execute?, sourceMap? }\\n    at validate (/home/runner/work/next.js/next.js/node_modules/schema-utils/dist/validate.js:98:11)\\n    at Object.loader (/home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js:1:103597)\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModule.js:316:20\\n    at /home/runner/work/next.js/next.js/node_modules/loader-runner/lib/LoaderRunner.js:367:11\\n    at /home/runner/work/next.js/next.js/node_modules/loader-runner/lib/LoaderRunner.js:233:18\"},\"gip\":true,\"head\":[[\"meta\",{\"charSet\":\"utf-8\"}],[\"meta\",{\"name\":\"viewport\",\"content\":\"width=device-width\"}]]}</script><script crossorigin=\"anonymous\" nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1601482521514\"></script><script src=\"/_next/static/chunks/main.js?ts=1601482521514\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/chunks/webpack.js?ts=1601482521514\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/chunks/pages/_app.js?ts=1601482521514\" crossorigin=\"anonymous\"></script><script crossorigin=\"anonymous\" src=\"/_next/static/chunks/pages/_error.js\"></script><script src=\"/_next/static/development/_buildManifest.js?ts=1601482521514\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/development/_buildManifest.module.js?ts=1601482521514\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/development/_ssgManifest.js?ts=1601482521514\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/development/_ssgManifest.module.js?ts=1601482521514\" crossorigin=\"anonymous\"></script><div id=\"__next-build-watcher\" style=\"position: fixed; bottom: 10px; right: 20px; width: 0px; height: 0px; z-index: 99999;\"></div><div id=\"__next-prerender-indicator\" style=\"position: fixed; bottom: 20px; right: 10px; width: 0px; height: 0px; z-index: 99998; transition: all 100ms ease 0s;\"></div><nextjs-portal></nextjs-portal>"

  639 | 
  640 |     const text = await browser.eval(`document.body.innerHTML`)
> 641 |     expect(text).toMatch(/onmpost:.*post-1/)
      |                  ^
  642 | 
  643 |     const scrollPosition = await browser.eval('window.pageYOffset')
  644 |     expect(scrollPosition).toBe(7232)

  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:641:18)
      at runMicrotasks (<anonymous>)

● Dynamic Routing › dev mode › should scroll to a hash on client-side navigation

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#view-dynamic-with-hash"}
  (Session info: headless chrome=85.0.4183.102)

  647 |   it('should scroll to a hash on client-side navigation', async () => {
  648 |     const browser = await webdriver(appPort, '/')
> 649 |     await browser.elementByCss('#view-dynamic-with-hash').click()
      |     ^
  650 |     await browser.waitForElementByCss('#asdf')
  651 | 
  652 |     const text = await browser.elementByCss('#asdf').text()

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
      at runMicrotasks (<anonymous>)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:649:5)

● Dynamic Routing › dev mode › should respond with bad request with invalid encoding

expect(received).toBe(expected) // Object.is equality

Expected: 400
Received: 500

  720 |   it('should respond with bad request with invalid encoding', async () => {
  721 |     const res = await fetchViaHTTP(appPort, '/%')
> 722 |     expect(res.status).toBe(400)
      |                        ^
  723 |   })
  724 | 
  725 |   it('should preload buildManifest for auto-export dynamic pages', async () => {

  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:722:24)
      at runMicrotasks (<anonymous>)

● Dynamic Routing › dev mode › should preload buildManifest for auto-export dynamic pages

expect(received).toBe(expected) // Object.is equality

Expected: 2
Received: 0

  737 |       }
  738 |     }
> 739 |     expect(found).toBe(dev ? 2 : 1)
      |                   ^
  740 |   })
  741 | 
  742 |   it('should not preload buildManifest for non-auto export dynamic pages', async () => {

  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:739:19)
      at runMicrotasks (<anonymous>)

● Dynamic Routing › dev mode › should resolve dynamic route href for page added later

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#added-later-link"}
  (Session info: headless chrome=85.0.4183.102)

  782 |       }, 'success')
  783 | 
> 784 |       await browser.elementByCss('#added-later-link').click()
      |       ^
  785 |       await browser.waitForElementByCss('#added-later')
  786 | 
  787 |       const text = await browser.elementByCss('#added-later').text()

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
      at runMicrotasks (<anonymous>)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:784:7)

● Dynamic Routing › dev mode › should show error when interpolating fails for href

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#view-post-1-interpolated-incorrectly"}
  (Session info: headless chrome=85.0.4183.102)

  793 |     it('should show error when interpolating fails for href', async () => {
  794 |       const browser = await webdriver(appPort, '/')
> 795 |       await browser
      |       ^
  796 |         .elementByCss('#view-post-1-interpolated-incorrectly')
  797 |         .click()
  798 |       await hasRedbox(browser)

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:795:7)

● Dynamic Routing › dev mode › should work with HMR correctly

expect(received).toMatch(expected)

Expected pattern: /comments for.*post-1/
Received string:  "<head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width\"><noscript data-n-css=\"true\"></noscript><link rel=\"preload\" href=\"/_next/static/chunks/main.js?ts=1601482524281\" as=\"script\" crossorigin=\"anonymous\"><link rel=\"preload\" href=\"/_next/static/chunks/webpack.js?ts=1601482524281\" as=\"script\" crossorigin=\"anonymous\"><link rel=\"preload\" href=\"/_next/static/chunks/pages/_app.js?ts=1601482524281\" as=\"script\" crossorigin=\"anonymous\"><noscript id=\"__next_css__DO_NOT_USE__\"></noscript><script charset=\"utf-8\" src=\"/_next/static/chunks/0.js\"></script></head><body style=\"overflow: hidden;\"><div id=\"__next\"></div><script src=\"/_next/static/chunks/react-refresh.js?ts=1601482524281\" crossorigin=\"anonymous\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\" crossorigin=\"anonymous\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"ModuleBuildError\",\"message\":\"Module build failed (from /home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js):\\nValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.\\n - options has an unknown property 'plugins'. These properties are valid:\\n   object { postcssOptions?, execute?, sourceMap? }\\n    at validate (/home/runner/work/next.js/next.js/node_modules/schema-utils/dist/validate.js:98:11)\\n    at Object.loader (/home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js:1:103597)\",\"stack\":\"ModuleBuildError: Module build failed (from /home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js):\\nValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.\\n - options has an unknown property 'plugins'. These properties are valid:\\n   object { postcssOptions?, execute?, sourceMap? }\\n    at validate (/home/runner/work/next.js/next.js/node_modules/schema-utils/dist/validate.js:98:11)\\n    at Object.loader (/home/runner/work/next.js/next.js/packages/next/dist/compiled/postcss-loader/cjs.js:1:103597)\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModule.js:316:20\\n    at /home/runner/work/next.js/next.js/node_modules/loader-runner/lib/LoaderRunner.js:367:11\\n    at /home/runner/work/next.js/next.js/node_modules/loader-runner/lib/LoaderRunner.js:233:18\"},\"gip\":true,\"head\":[[\"meta\",{\"charSet\":\"utf-8\"}],[\"meta\",{\"name\":\"viewport\",\"content\":\"width=device-width\"}]]}</script><script crossorigin=\"anonymous\" nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1601482524281\"></script><script src=\"/_next/static/chunks/main.js?ts=1601482524281\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/chunks/webpack.js?ts=1601482524281\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/chunks/pages/_app.js?ts=1601482524281\" crossorigin=\"anonymous\"></script><script crossorigin=\"anonymous\" src=\"/_next/static/chunks/pages/_error.js\"></script><script src=\"/_next/static/development/_buildManifest.js?ts=1601482524281\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/development/_buildManifest.module.js?ts=1601482524281\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/development/_ssgManifest.js?ts=1601482524281\" crossorigin=\"anonymous\"></script><script src=\"/_next/static/development/_ssgManifest.module.js?ts=1601482524281\" crossorigin=\"anonymous\"></script><div id=\"__next-build-watcher\" style=\"position: fixed; bottom: 10px; right: 20px; width: 0px; height: 0px; z-index: 99999;\"></div><div id=\"__next-prerender-indicator\" style=\"position: fixed; bottom: 20px; right: 10px; width: 0px; height: 0px; z-index: 99998; transition: all 100ms ease 0s;\"></div><nextjs-portal></nextjs-portal></body>"

  806 |       const browser = await webdriver(appPort, '/post-1/comments')
  807 |       let text = await browser.eval(`document.documentElement.innerHTML`)
> 808 |       expect(text).toMatch(/comments for.*post-1/)
      |                    ^
  809 | 
  810 |       const page = join(appDir, 'pages/[name]/comments.js')
  811 |       const origContent = await fs.readFile(page, 'utf8')

  at Object.<anonymous> (integration/dynamic-routing/test/index.test.js:808:20)

● Dynamic Routing › production mode › should not have any query values when not defined

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should render normal route

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should render another normal route

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should render dynamic page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should prioritize a non-dynamic page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should render nested dynamic page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should render optional dynamic page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should render nested optional dynamic page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should not error when requesting dynamic page with /api

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should render dynamic route with query

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should navigate to a dynamic page successfully

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should navigate to a dynamic page successfully no as

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should navigate to a dynamic page successfully interpolated

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should navigate to a dynamic page successfully interpolated with additional query values

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should allow calling Router.push on mount successfully

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should navigate optional dynamic page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should navigate optional dynamic page with value

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should navigate to a nested dynamic page successfully

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should navigate to a nested dynamic page successfully no as

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should navigate to a nested dynamic page successfully interpolated

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should pass params in getInitialProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should pass params in getInitialProps during client navigation

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [catch all] should not match root on SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [catch all] should pass param in getInitialProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [catch all] should pass params in getInitialProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [catch all] should strip trailing slash

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [catch all] should not decode slashes (start)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [catch all] should not decode slashes (end)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [catch all] should not decode slashes (middle)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [catch-all] should pass params in getInitialProps during client navigation (single)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [catch-all] should pass params in getInitialProps during client navigation (multi)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [catch-all] should pass params in getInitialProps during client navigation (encoded)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [catch-all] shouldn't fail on colon followed by double digits in the path

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [ssg: catch all] should pass param in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [ssg: catch all] should pass params in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [nested ssg: catch all] should pass param in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [nested ssg: catch all] should pass params in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [predefined ssg: catch all] should pass param in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [predefined ssg: catch all] should pass params in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [predefined ssg: prerendered catch all] should pass param in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [predefined ssg: prerendered catch all] should pass params in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (single)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (single interpolated)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (multi)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (multi) no as

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (multi interpolated)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [nested ssg: catch-all] should pass params in getStaticProps during client navigation (single)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › [nested ssg: catch-all] should pass params in getStaticProps during client navigation (multi)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should update dynamic values on mount

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should not have placeholder query values for SSS

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should update with a hash in the URL

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should scroll to a hash on mount

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should scroll to a hash on client-side navigation

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should prioritize public files over dynamic route

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should serve file with space from public folder

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should serve file with plus from public folder

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should serve file from public folder encoded

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should serve file with %20 from public folder

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should serve file with space from static folder

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should serve file with plus from static folder

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should serve file from static folder encoded

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should serve file with %20 from static folder

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should respond with bad request with invalid encoding

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should preload buildManifest for auto-export dynamic pages

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should not preload buildManifest for non-auto export dynamic pages

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should output modern bundles with dynamic route correctly

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › production mode › should output a routes-manifest correctly

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should not have any query values when not defined

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should render normal route

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should render another normal route

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should render dynamic page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should prioritize a non-dynamic page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should render nested dynamic page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should render optional dynamic page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should render nested optional dynamic page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should not error when requesting dynamic page with /api

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should render dynamic route with query

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should navigate to a dynamic page successfully

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should navigate to a dynamic page successfully no as

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should navigate to a dynamic page successfully interpolated

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should navigate to a dynamic page successfully interpolated with additional query values

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should allow calling Router.push on mount successfully

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should navigate optional dynamic page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should navigate optional dynamic page with value

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should navigate to a nested dynamic page successfully

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should navigate to a nested dynamic page successfully no as

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should navigate to a nested dynamic page successfully interpolated

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should pass params in getInitialProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should pass params in getInitialProps during client navigation

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [catch all] should not match root on SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [catch all] should pass param in getInitialProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [catch all] should pass params in getInitialProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [catch all] should strip trailing slash

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [catch all] should not decode slashes (start)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [catch all] should not decode slashes (end)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [catch all] should not decode slashes (middle)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [catch-all] should pass params in getInitialProps during client navigation (single)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [catch-all] should pass params in getInitialProps during client navigation (multi)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [catch-all] should pass params in getInitialProps during client navigation (encoded)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [catch-all] shouldn't fail on colon followed by double digits in the path

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [ssg: catch all] should pass param in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [ssg: catch all] should pass params in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [nested ssg: catch all] should pass param in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [nested ssg: catch all] should pass params in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [predefined ssg: catch all] should pass param in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [predefined ssg: catch all] should pass params in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [predefined ssg: prerendered catch all] should pass param in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [predefined ssg: prerendered catch all] should pass params in getStaticProps during SSR

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (single)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (single interpolated)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (multi)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (multi) no as

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [ssg: catch-all] should pass params in getStaticProps during client navigation (multi interpolated)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [nested ssg: catch-all] should pass params in getStaticProps during client navigation (single)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › [nested ssg: catch-all] should pass params in getStaticProps during client navigation (multi)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should update dynamic values on mount

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should not have placeholder query values for SSS

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should update with a hash in the URL

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should scroll to a hash on mount

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should scroll to a hash on client-side navigation

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should prioritize public files over dynamic route

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should serve file with space from public folder

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should serve file with plus from public folder

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should serve file from public folder encoded

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should serve file with %20 from public folder

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should serve file with space from static folder

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should serve file with plus from static folder

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should serve file from static folder encoded

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should serve file with %20 from static folder

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should respond with bad request with invalid encoding

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should preload buildManifest for auto-export dynamic pages

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should not preload buildManifest for non-auto export dynamic pages

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should output modern bundles with dynamic route correctly

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Dynamic Routing › serverless mode › should output a routes-manifest correctly

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

test/integration/css-customization/test/index.test.js

  • Bad CSS Customization > should compile successfully
  • Bad CSS Customization > should've compiled and prefixed
  • Bad CSS Customization > should've emitted a source map
  • CSS Customization > should compile successfully
  • CSS Customization > should've compiled and prefixed
  • CSS Customization > should've emitted a source map
  • CSS Customization Array > should compile successfully
  • CSS Customization Array > should've compiled and prefixed
  • CSS Customization Array > should've emitted a source map
Expand output

● CSS Customization › should compile successfully

expect(received).toBe(expected) // Object.is equality

Expected: 0
Received: 1

  21 |       stdout: true,
  22 |     })
> 23 |     expect(code).toBe(0)
     |                  ^
  24 |     expect(stdout).toMatch(/Compiled successfully/)
  25 |   })
  26 | 

  at Object.<anonymous> (integration/css-customization/test/index.test.js:23:18)

● CSS Customization › should've compiled and prefixed

ENOENT: no such file or directory, scandir '/home/runner/work/next.js/next.js/test/integration/css-fixtures/custom-configuration/.next/static/css'

● CSS Customization › should've emitted a source map

ENOENT: no such file or directory, scandir '/home/runner/work/next.js/next.js/test/integration/css-fixtures/custom-configuration/.next/static/css'

● CSS Customization Array › should compile successfully

expect(received).toBe(expected) // Object.is equality

Expected: 0
Received: 1

  120 |       stdout: true,
  121 |     })
> 122 |     expect(code).toBe(0)
      |                  ^
  123 |     expect(stdout).toMatch(/Compiled successfully/)
  124 |   })
  125 | 

  at Object.<anonymous> (integration/css-customization/test/index.test.js:122:18)

● CSS Customization Array › should've compiled and prefixed

ENOENT: no such file or directory, scandir '/home/runner/work/next.js/next.js/test/integration/css-fixtures/custom-configuration-arr/.next/static/css'

● CSS Customization Array › should've emitted a source map

ENOENT: no such file or directory, scandir '/home/runner/work/next.js/next.js/test/integration/css-fixtures/custom-configuration-arr/.next/static/css'

● Bad CSS Customization › should compile successfully

expect(received).toMatch(expected)

Expected pattern: /Compiled successfully/
Received string:  "warn  - No build cache found. Please configure build caching for faster rebuilds. Read more: https://err.sh/next.js/no-cache
info  - Creating an optimized production build...
info  - Using external babel configuration from /home/runner/work/next.js/next.js/test/.babelrc
"

  190 |       stderr: true,
  191 |     })
> 192 |     expect(stdout).toMatch(/Compiled successfully/)
      |                    ^
  193 |     expect(stderr).toMatch(/field which is not supported.*?sourceMap/)
  194 |     ;[
  195 |       'postcss-modules-values',

  at Object.<anonymous> (integration/css-customization/test/index.test.js:192:20)

● Bad CSS Customization › should've compiled and prefixed

ENOENT: no such file or directory, scandir '/home/runner/work/next.js/next.js/test/integration/css-fixtures/bad-custom-configuration/.next/static/css'

● Bad CSS Customization › should've emitted a source map

ENOENT: no such file or directory, scandir '/home/runner/work/next.js/next.js/test/integration/css-fixtures/bad-custom-configuration/.next/static/css'

test/integration/production/test/index.test.js

  • Production Usage > should navigate to external site and back
  • Production Usage > should navigate to page with CSS and back
  • Production Usage > should navigate to external site and back (with query)
  • Production Usage > should change query correctly
  • Production Usage > should not expose the compiled page file in development
  • Production Usage > should not put backslashes in pages-manifest.json
  • Production Usage > should handle failed param decoding
  • Production Usage > should replace static pages with HTML files
  • Production Usage > should not replace non-static pages with HTML files
  • Production Usage > should handle AMP correctly in IE
  • Production Usage > should warn when prefetch is true
  • Production Usage > should not emit profiling events
  • Production Usage > should contain the Next.js version in window export
  • Production Usage > should clear all core performance marks
  • Production Usage > should not clear custom performance marks
  • Production Usage > should have async on all script tags
  • Production Usage > API routes > should work with pages/api/index.js
  • Production Usage > API routes > should work with pages/api/hello.js
  • Production Usage > API routes > should work with dynamic params and search string
  • Production Usage > Dynamic import > Import mapping > should render dynamic imports bundle
  • Production Usage > Dynamic import > Import mapping > should render dynamic imports bundle with additional components
  • Production Usage > Dynamic import > Import mapping > should render components
  • Production Usage > Dynamic import > Import mapping > should render support React context
  • Production Usage > Dynamic import > Import mapping > should load new components and render for prop changes
  • Production Usage > Dynamic import > custom loading > should render custom loading on the server side when ssr:false and loading is provided
  • Production Usage > Dynamic import > custom loading > should render the component on client side
  • Production Usage > Dynamic import > default behavior > should render dynamic import components
  • Production Usage > Dynamic import > default behavior > should render one dynamically imported component and load its css files
  • Production Usage > Dynamic import > default behavior > should render three dynamically imported components and load their css files
  • Production Usage > Dynamic import > default behavior > should bundle two css modules for one dynamically imported component into one css file
  • Production Usage > Dynamic import > default behavior > should bundle two css modules for nested components into one css file
  • Production Usage > Dynamic import > default behavior > should output two css files even in case of three css module files while one is shared across files
  • Production Usage > Dynamic import > default behavior > should render one dynamically imported component without any css files
  • Production Usage > Dynamic import > default behavior > should render even there are no physical chunk exists
  • Production Usage > Dynamic import > ssr:false option > should not render loading on the server side
  • Production Usage > Dynamic import > ssr:false option > should render the component on client side
  • Production Usage > Dynamic import > ssr:true option > should render the component on the server side
  • Production Usage > Dynamic import > ssr:true option > should render the component on client side
  • Production Usage > Misc > should handle already finished responses
  • Production Usage > Misc > should allow to access /static/ and /_next/
  • Production Usage > Misc > Should allow access to public files
  • Production Usage > Misc > should reload the page on page script error
  • Production Usage > Misc > should have default runtime values when not defined
  • Production Usage > Misc > should not have runtimeConfig in NEXT_DATA
  • Production Usage > Misc > should add autoExport for auto pre-rendered pages
  • Production Usage > Misc > should not add autoExport for non pre-rendered pages
  • Production Usage > Misc > should add prefetch tags when Link prefetch prop is used
  • Production Usage > Misc > It does not add a timestamp to link tags with prefetch attribute
  • Production Usage > Misc > should reload the page on page script error with prefetch
  • Production Usage > Runtime errors > should render a server side error on the client side
  • Production Usage > Runtime errors > should render a client side component error
  • Production Usage > Runtime errors > should call getInitialProps on _error page during a client side component error
  • Production Usage > With Security Related Issues > should only access files inside .next directory
  • Production Usage > With Security Related Issues > should not allow accessing files outside .next/static directory
  • Production Usage > With Security Related Issues > should not leak the user's home directory into the build
  • Production Usage > With Security Related Issues > should prevent URI based XSS attacks
  • Production Usage > With Security Related Issues > should prevent URI based XSS attacks using single quotes
  • Production Usage > With Security Related Issues > should prevent URI based XSS attacks using double quotes
  • Production Usage > With Security Related Issues > should prevent URI based XSS attacks using semicolons and double quotes
  • Production Usage > With Security Related Issues > should prevent URI based XSS attacks using semicolons and single quotes
  • Production Usage > With Security Related Issues > should prevent URI based XSS attacks using src
  • Production Usage > With Security Related Issues > should prevent URI based XSS attacks using querystring
  • Production Usage > With Security Related Issues > should prevent URI based XSS attacks using querystring and quotes
  • Production Usage > With Security Related Issues > should handle encoded value in the pathname correctly \
  • Production Usage > With Security Related Issues > should handle encoded value in the pathname correctly %
  • Production Usage > With basic usage > should render the page
  • Production Usage > With basic usage > should polyfill Node.js modules
  • Production Usage > With basic usage > should allow etag header support
  • Production Usage > With basic usage > should allow etag header support with getStaticProps
  • Production Usage > With basic usage > should allow etag header support with getServerSideProps
  • Production Usage > With basic usage > should have X-Powered-By header support
  • Production Usage > With basic usage > should render 404 for routes that do not exist
  • Production Usage > With basic usage > should render 404 for /_next/static route
  • Production Usage > With basic usage > should render 200 for POST on page
  • Production Usage > With basic usage > should render 404 for POST on missing page
  • Production Usage > With basic usage > should render 404 for _next routes that do not exist
  • Production Usage > With basic usage > should render 404 even if the HTTP method is not GET or HEAD
  • Production Usage > With basic usage > should render 404 for dotfiles in /static
  • Production Usage > With basic usage > should return 405 method on static then GET and HEAD
  • Production Usage > With basic usage > should return 412 on static file when If-Unmodified-Since is provided and file is modified
  • Production Usage > With basic usage > should return 200 on static file if If-Unmodified-Since is invalid date
  • Production Usage > With basic usage > should set Content-Length header
  • Production Usage > With basic usage > should set Cache-Control header
  • Production Usage > With basic usage > should set correct Cache-Control header for static 404s
  • Production Usage > With basic usage > should block special pages
  • Production Usage > With basic usage > should not contain customServer in NEXT_DATA
  • Production Usage > With navigation > should navigate via client side
  • Production Usage > With navigation > should navigate to nested index via client side
  • Production Usage > With navigation > should set title by routeChangeComplete event
  • Production Usage > With navigation > should reload page successfully (on bad link)
  • Production Usage > With navigation > should reload page successfully (on bad data fetch)
  • Production Usage > process.browser > should eliminate server only code on the client
  • Production Usage > process.browser > should eliminate client only code on the server
  • Production Usage > process.env > should set process.env.NODE_ENV in production
Expand output

● Production Usage › With basic usage › should render the page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should polyfill Node.js modules

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should allow etag header support

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should allow etag header support with getStaticProps

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should allow etag header support with getServerSideProps

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should have X-Powered-By header support

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should render 404 for routes that do not exist

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should render 404 for /_next/static route

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should render 200 for POST on page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should render 404 for POST on missing page

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should render 404 for _next routes that do not exist

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should render 404 even if the HTTP method is not GET or HEAD

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should render 404 for dotfiles in /static

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should return 405 method on static then GET and HEAD

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should return 412 on static file when If-Unmodified-Since is provided and file is modified

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should return 200 on static file if If-Unmodified-Since is invalid date

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should set Content-Length header

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should set Cache-Control header

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should set correct Cache-Control header for static 404s

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should block special pages

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With basic usage › should not contain customServer in NEXT_DATA

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › API routes › should work with pages/api/index.js

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › API routes › should work with pages/api/hello.js

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › API routes › should work with dynamic params and search string

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With navigation › should navigate via client side

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With navigation › should navigate to nested index via client side

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With navigation › should set title by routeChangeComplete event

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With navigation › should reload page successfully (on bad link)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With navigation › should reload page successfully (on bad data fetch)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should navigate to external site and back

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should navigate to page with CSS and back

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should navigate to external site and back (with query)

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should change query correctly

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Runtime errors › should render a server side error on the client side

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Runtime errors › should render a client side component error

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Runtime errors › should call getInitialProps on _error page during a client side component error

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Misc › should handle already finished responses

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Misc › should allow to access /static/ and /_next/

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Misc › Should allow access to public files

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Misc › should reload the page on page script error

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Misc › should have default runtime values when not defined

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Misc › should not have runtimeConfig in NEXT_DATA

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Misc › should add autoExport for auto pre-rendered pages

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Misc › should not add autoExport for non pre-rendered pages

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Misc › should add prefetch tags when Link prefetch prop is used

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Misc › It does not add a timestamp to link tags with prefetch attribute

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Misc › should reload the page on page script error with prefetch

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should not expose the compiled page file in development

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should not put backslashes in pages-manifest.json

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should handle failed param decoding

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should replace static pages with HTML files

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should not replace non-static pages with HTML files

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should handle AMP correctly in IE

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should warn when prefetch is true

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should not emit profiling events

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should contain the Next.js version in window export

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should clear all core performance marks

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should not clear custom performance marks

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › should have async on all script tags

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › default behavior › should render dynamic import components

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › default behavior › should render one dynamically imported component and load its css files

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › default behavior › should render three dynamically imported components and load their css files

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › default behavior › should bundle two css modules for one dynamically imported component into one css file

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › default behavior › should bundle two css modules for nested components into one css file

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › default behavior › should output two css files even in case of three css module files while one is shared across files

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › default behavior › should render one dynamically imported component without any css files

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › default behavior › should render even there are no physical chunk exists

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › ssr:false option › should not render loading on the server side

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › ssr:false option › should render the component on client side

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › ssr:true option › should render the component on the server side

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › ssr:true option › should render the component on client side

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › custom loading › should render custom loading on the server side when ssr:false and loading is provided

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › custom loading › should render the component on client side

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › Import mapping › should render dynamic imports bundle

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › Import mapping › should render dynamic imports bundle with additional components

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › Import mapping › should render components

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › Import mapping › should render support React context

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › Dynamic import › Import mapping › should load new components and render for prop changes

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › process.env › should set process.env.NODE_ENV in production

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › process.browser › should eliminate server only code on the client

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › process.browser › should eliminate client only code on the server

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With Security Related Issues › should only access files inside .next directory

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With Security Related Issues › should not allow accessing files outside .next/static directory

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With Security Related Issues › should not leak the user's home directory into the build

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With Security Related Issues › should prevent URI based XSS attacks

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using single quotes

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using double quotes

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using semicolons and double quotes

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using semicolons and single quotes

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using src

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using querystring

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using querystring and quotes

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With Security Related Issues › should handle encoded value in the pathname correctly \

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Production Usage › With Security Related Issues › should handle encoded value in the pathname correctly %

command failed with code 1

  132 |         code !== 0
  133 |       ) {
> 134 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  135 |       }
  136 | 
  137 |       resolve({

  at ChildProcess.<anonymous> (lib/next-test-utils.js:134:23)

● Test suite failed to run

TypeError: Cannot read property '__app' of undefined

  309 | 
  310 | export async function stopApp(server) {
> 311 |   if (server.__app) {
      |              ^
  312 |     await server.__app.close()
  313 |   }
  314 |   await promiseCall(server, 'close')

  at stopApp (lib/next-test-utils.js:311:14)
  at integration/production/test/index.test.js:47:18

test/acceptance/ReactRefreshLogBox.test.js

  • css syntax errors

  • scss syntax errors

Expand output

● css syntax errors

expect(received).toBe(expected) // Object.is equality

Expected: false
Received: true

  807 |   )
  808 | 
> 809 |   expect(await session.hasRedbox()).toBe(false)
      |                                     ^
  810 | 
  811 |   // Syntax error
  812 |   await session.patch('index.module.css', `.button {`)

  at Object.<anonymous> (acceptance/ReactRefreshLogBox.test.js:809:37)

● scss syntax errors

expect(received).toBe(expected) // Object.is equality

Expected: false
Received: true

  854 |   )
  855 | 
> 856 |   expect(await session.hasRedbox()).toBe(false)
      |                                     ^
  857 | 
  858 |   // Syntax error
  859 |   await session.patch('index.module.scss', `.button { font-size: :5px; }`)

  at Object.<anonymous> (acceptance/ReactRefreshLogBox.test.js:856:37)

@ijjk
Copy link
Member

ijjk commented Sep 30, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 12.7s 12.8s ⚠️ +149ms
nodeModulesSize 62.9 MB 63 MB ⚠️ +88.5 kB
Page Load Tests Overall increase ✓
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
/ failed reqs 0 0
/ total time (seconds) 2.278 2.285 ⚠️ +0.01
/ avg req/sec 1097.27 1094.08 ⚠️ -3.19
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.223 1.198 -0.03
/error-in-render avg req/sec 2043.42 2087.44 +44.02
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 996 B
Overall change 3.01 kB 3.01 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 14.1s 14.1s -70ms
nodeModulesSize 62.9 MB 63 MB ⚠️ +88.5 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_error.js 1.05 MB 1.05 MB
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.05 MB 1.05 MB
link.js 1.1 MB 1.1 MB
routerDirect.js 1.09 MB 1.09 MB
withRouter.js 1.09 MB 1.09 MB
Overall change 5.4 MB 5.4 MB
Commit: a430f64

@ijjk
Copy link
Member

ijjk commented Sep 30, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 13.1s 12.2s -974ms
nodeModulesSize 62.9 MB 63 MB ⚠️ +88.4 kB
Page Load Tests Overall increase ✓
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
/ failed reqs 0 0
/ total time (seconds) 2.401 2.253 -0.15
/ avg req/sec 1041.25 1109.67 +68.42
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.243 1.245 0
/error-in-render avg req/sec 2010.59 2008.77 ⚠️ -1.82
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 996 B
Overall change 3.01 kB 3.01 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 14.3s 13.9s -330ms
nodeModulesSize 62.9 MB 63 MB ⚠️ +88.4 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_error.js 1.05 MB 1.05 MB
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.05 MB 1.05 MB
link.js 1.1 MB 1.1 MB
routerDirect.js 1.09 MB 1.09 MB
withRouter.js 1.09 MB 1.09 MB
Overall change 5.4 MB 5.4 MB
Commit: 0397292

@ijjk
Copy link
Member

ijjk commented Sep 30, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 14.7s 14.6s -74ms
nodeModulesSize 62.9 MB 63 MB ⚠️ +88.4 kB
Page Load Tests Overall increase ✓
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
/ failed reqs 0 0
/ total time (seconds) 2.741 2.659 -0.08
/ avg req/sec 911.99 940.1 +28.11
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.572 1.502 -0.07
/error-in-render avg req/sec 1589.85 1664.65 +74.8
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 996 B
Overall change 3.01 kB 3.01 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 16.1s 16s -159ms
nodeModulesSize 62.9 MB 63 MB ⚠️ +88.4 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_error.js 1.05 MB 1.05 MB
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.05 MB 1.05 MB
link.js 1.1 MB 1.1 MB
routerDirect.js 1.09 MB 1.09 MB
withRouter.js 1.09 MB 1.09 MB
Overall change 5.4 MB 5.4 MB
Commit: cca5061

@ijjk
Copy link
Member

ijjk commented Sep 30, 2020

Failing test suites

Commit: 0397292

test/acceptance/ReactRefreshLogBox.test.js

  • css syntax errors

Expand output

● css syntax errors

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `css syntax errors 2`

- Snapshot  - 1
+ Received  + 1

  ./index.module.css:1:1
  Syntax error: Selector "button" is not pure (pure selectors must contain at least one local class or id)

  > 1 | button {}
-     |         ^
+     | ^

  825 |   expect(await session.hasRedbox(true)).toBe(true)
  826 |   const source2 = await session.getRedboxSource()
> 827 |   expect(source2).toMatchInlineSnapshot(`
      |                   ^
  828 |     "./index.module.css:1:1
  829 |     Syntax error: Selector \\"button\\" is not pure (pure selectors must contain at least one local class or id)
  830 | 

  at Object.<anonymous> (acceptance/ReactRefreshLogBox.test.js:827:19)

@ijjk
Copy link
Member

ijjk commented Sep 30, 2020

Failing test suites

Commit: cca5061

test/acceptance/ReactRefreshLogBox.test.js

  • css syntax errors

Expand output

● css syntax errors

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `css syntax errors 2`

- Snapshot  - 1
+ Received  + 1

  ./index.module.css:1:1
  Syntax error: Selector "button" is not pure (pure selectors must contain at least one local class or id)

  > 1 | button {}
-     |         ^
+     | ^

  825 |   expect(await session.hasRedbox(true)).toBe(true)
  826 |   const source2 = await session.getRedboxSource()
> 827 |   expect(source2).toMatchInlineSnapshot(`
      |                   ^
  828 |     "./index.module.css:1:1
  829 |     Syntax error: Selector \\"button\\" is not pure (pure selectors must contain at least one local class or id)
  830 | 

  at Object.<anonymous> (acceptance/ReactRefreshLogBox.test.js:827:19)

@ijjk
Copy link
Member

ijjk commented Sep 30, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 13s 13.8s ⚠️ +801ms
nodeModulesSize 62.9 MB 63 MB ⚠️ +88.4 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
/ failed reqs 0 0
/ total time (seconds) 2.507 2.727 ⚠️ +0.22
/ avg req/sec 997.16 916.63 ⚠️ -80.53
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.457 1.571 ⚠️ +0.11
/error-in-render avg req/sec 1715.71 1591.68 ⚠️ -124.03
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 996 B
Overall change 3.01 kB 3.01 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
buildDuration 15.8s 16s ⚠️ +167ms
nodeModulesSize 62.9 MB 63 MB ⚠️ +88.4 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary ludovicofischer/next.js postcss-loader-4 Change
_error.js 1.05 MB 1.05 MB
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.05 MB 1.05 MB
link.js 1.1 MB 1.1 MB
routerDirect.js 1.09 MB 1.09 MB
withRouter.js 1.09 MB 1.09 MB
Overall change 5.4 MB 5.4 MB
Commit: 17d1219

@ludofischer ludofischer marked this pull request as ready for review September 30, 2020 21:27
@ludofischer
Copy link
Contributor Author

I think it should be good to review now, I had some trouble understanding how Next gets compiled. I think remaining CI failures are caused by jobs running for too long (and I can’t find any recent commit which passes the webpack 5 tests).

@ijjk
Copy link
Member

ijjk commented Oct 3, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
buildDuration 13.5s 13.5s ⚠️ +28ms
nodeModulesSize 63.1 MB 63.2 MB ⚠️ +88.5 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
/ failed reqs 0 0
/ total time (seconds) 2.573 2.547 -0.03
/ avg req/sec 971.6 981.52 +9.92
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.433 1.519 ⚠️ +0.09
/error-in-render avg req/sec 1744.93 1645.97 ⚠️ -98.96
Client Bundles (main, webpack, commons)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 996 B
Overall change 3.01 kB 3.01 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
buildDuration 15.1s 15.3s ⚠️ +164ms
nodeModulesSize 63.1 MB 63.2 MB ⚠️ +88.5 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-d493e7d..42f5.js gzip 7.17 kB 7.17 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.8 kB 57.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-f8905d4..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.7 kB 52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_error.js 1.05 MB 1.05 MB
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.05 MB 1.05 MB
link.js 1.1 MB 1.1 MB
routerDirect.js 1.09 MB 1.09 MB
withRouter.js 1.09 MB 1.09 MB
Overall change 5.4 MB 5.4 MB
Commit: 7e8ecab

@ijjk
Copy link
Member

ijjk commented Oct 3, 2020

Failing test suites

Commit: 7e8ecab

test/acceptance/ReactRefreshLogBox.test.js

  • css syntax errors

Expand output

● css syntax errors

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `css syntax errors 1`

- Snapshot  - 1
+ Received  + 1

  ./index.module.css:1:1
- Syntax error: Unclosed block
+ Syntax error: /home/runner/work/next.js/next.js/test/acceptance/__tmp__/VD9rnjRSCKlLHR2141dm9/index.module.css Unclosed block

  > 1 | .button {
      | ^

  813 |   expect(await session.hasRedbox(true)).toBe(true)
  814 |   const source = await session.getRedboxSource()
> 815 |   expect(source).toMatchInlineSnapshot(`
      |                  ^
  816 |     "./index.module.css:1:1
  817 |     Syntax error: Unclosed block
  818 | 

  at Object.<anonymous> (acceptance/ReactRefreshLogBox.test.js:815:18)

@ijjk

This comment has been minimized.

@ijjk
Copy link
Member

ijjk commented Oct 9, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
buildDuration 13.3s 13.4s ⚠️ +54ms
nodeModulesSize 63.4 MB 63.5 MB ⚠️ +88.5 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
/ failed reqs 0 0
/ total time (seconds) 2.597 2.605 ⚠️ +0.01
/ avg req/sec 962.71 959.86 ⚠️ -2.85
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.501 1.569 ⚠️ +0.07
/error-in-render avg req/sec 1665.13 1593.76 ⚠️ -71.37
Client Bundles (main, webpack, commons)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..9b19.js gzip 11.1 kB 11.1 kB
framework.HASH.js gzip 39 kB 39 kB
main-ef5fcfe..d66c.js gzip 7.24 kB 7.24 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58 kB 58 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.9 kB 6.9 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-1c7f28c..dule.js gzip 6.29 kB 6.29 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.9 kB 52.9 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-409b283..e3ab.js gzip 1.32 kB 1.32 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.73 kB 7.73 kB
Client Pages Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-92d3016..dule.js gzip 1.28 kB 1.28 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.37 kB 5.37 kB
Client Build Manifests
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 323 B 323 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 652 B 652 B
Rendered Page Sizes
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 995 B 995 B
Overall change 3.01 kB 3.01 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
buildDuration 15.1s 15s -119ms
nodeModulesSize 63.4 MB 63.5 MB ⚠️ +88.5 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..9b19.js gzip 11.1 kB 11.1 kB
framework.HASH.js gzip 39 kB 39 kB
main-ef5fcfe..d66c.js gzip 7.24 kB 7.24 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58 kB 58 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.9 kB 6.9 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-1c7f28c..dule.js gzip 6.29 kB 6.29 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.9 kB 52.9 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-409b283..e3ab.js gzip 1.32 kB 1.32 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.73 kB 7.73 kB
Client Pages Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-92d3016..dule.js gzip 1.28 kB 1.28 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.37 kB 5.37 kB
Client Build Manifests
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 323 B 323 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 652 B 652 B
Serverless bundles
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_error.js 1.05 MB 1.05 MB
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.05 MB 1.05 MB
link.js 1.1 MB 1.1 MB
routerDirect.js 1.09 MB 1.09 MB
withRouter.js 1.09 MB 1.09 MB
Overall change 5.41 MB 5.41 MB
Commit: ae8f438

@ijjk

This comment has been minimized.

@ijjk
Copy link
Member

ijjk commented Oct 9, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
buildDuration 11.7s 12s ⚠️ +288ms
nodeModulesSize 63.4 MB 63.5 MB ⚠️ +88.5 kB
Page Load Tests Overall increase ✓
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
/ failed reqs 0 0
/ total time (seconds) 2.351 2.376 ⚠️ +0.02
/ avg req/sec 1063.32 1052.29 ⚠️ -11.03
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.421 1.393 -0.03
/error-in-render avg req/sec 1759.04 1794.14 +35.1
Client Bundles (main, webpack, commons)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..9b19.js gzip 11.1 kB 11.1 kB
framework.HASH.js gzip 39 kB 39 kB
main-dd31265..7e91.js gzip 7.24 kB 7.24 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58 kB 58 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.9 kB 6.9 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-ffbd9ea..dule.js gzip 6.29 kB 6.29 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.9 kB 52.9 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-409b283..e3ab.js gzip 1.32 kB 1.32 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.73 kB 7.73 kB
Client Pages Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-92d3016..dule.js gzip 1.28 kB 1.28 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.37 kB 5.37 kB
Client Build Manifests
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 323 B 323 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 652 B 652 B
Rendered Page Sizes
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 996 B
Overall change 3.01 kB 3.01 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
buildDuration 13.3s 13.2s -145ms
nodeModulesSize 63.4 MB 63.5 MB ⚠️ +88.5 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..9b19.js gzip 11.1 kB 11.1 kB
framework.HASH.js gzip 39 kB 39 kB
main-dd31265..7e91.js gzip 7.24 kB 7.24 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58 kB 58 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.9 kB 6.9 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-ffbd9ea..dule.js gzip 6.29 kB 6.29 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.9 kB 52.9 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-409b283..e3ab.js gzip 1.32 kB 1.32 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.73 kB 7.73 kB
Client Pages Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-92d3016..dule.js gzip 1.28 kB 1.28 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.37 kB 5.37 kB
Client Build Manifests
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 323 B 323 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 652 B 652 B
Serverless bundles
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_error.js 1.05 MB 1.05 MB
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.05 MB 1.05 MB
link.js 1.1 MB 1.1 MB
routerDirect.js 1.09 MB 1.09 MB
withRouter.js 1.09 MB 1.09 MB
Overall change 5.41 MB 5.41 MB
Commit: 3e11c66

- postcss-loader 4.0 improves compatibility with webpack 5.
- the 4.0.2 and 4.0.3 release notes also mention improved PostCSS 8 compatibility (see issue #17242)
- postcss-loader by default now detects external PostCss configs and merges them with loader options,
  so I have disabled this to preserve Next’s current behaviour. For example, Next accepts JSON configs with comments,
  but postcss-loader fails to load them.
- when patching the loader configuration, I try to detect the `postcssOptions` field instead of `ident`
  as now passing an `ident` field to the postcss-loader options triggers a schema validation error
- in one error overlay integration test, I check whether the error message contains the expected strings
  instead of matching a snapshot exactly, as now the postcss loader inserts the file path from the filesystem
  root in the error message, which we can’t match exactly across test runs
- updating postcss-loader to 4.0.4 breaks, because `4.0.4` requires schema-utils `^3.0.0`, but the ncc build
  prevents postcss-loader from using its own schema-utils
@ijjk
Copy link
Member

ijjk commented Oct 10, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
buildDuration 12.9s 13.2s ⚠️ +281ms
nodeModulesSize 63.4 MB 63.5 MB ⚠️ +88.5 kB
Page Load Tests Overall increase ✓
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
/ failed reqs 0 0
/ total time (seconds) 2.613 2.487 -0.13
/ avg req/sec 956.64 1005.37 +48.73
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.695 1.604 -0.09
/error-in-render avg req/sec 1474.73 1558.79 +84.06
Client Bundles (main, webpack, commons)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..133b.js gzip 11.1 kB 11.1 kB
framework.HASH.js gzip 39 kB 39 kB
main-faae5f7..727a.js gzip 7.22 kB 7.22 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58 kB 58 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.9 kB 6.9 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-d2ce890..dule.js gzip 6.28 kB 6.28 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.9 kB 52.9 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-409b283..e3ab.js gzip 1.32 kB 1.32 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.73 kB 7.73 kB
Client Pages Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-92d3016..dule.js gzip 1.28 kB 1.28 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.37 kB 5.37 kB
Client Build Manifests
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 323 B 323 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 652 B 652 B
Rendered Page Sizes
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 995 B 995 B
Overall change 3.01 kB 3.01 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
buildDuration 14.6s 14.8s ⚠️ +168ms
nodeModulesSize 63.4 MB 63.5 MB ⚠️ +88.5 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..133b.js gzip 11.1 kB 11.1 kB
framework.HASH.js gzip 39 kB 39 kB
main-faae5f7..727a.js gzip 7.22 kB 7.22 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58 kB 58 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.9 kB 6.9 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-d2ce890..dule.js gzip 6.28 kB 6.28 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.9 kB 52.9 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-409b283..e3ab.js gzip 1.32 kB 1.32 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.73 kB 7.73 kB
Client Pages Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-92d3016..dule.js gzip 1.28 kB 1.28 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.37 kB 5.37 kB
Client Build Manifests
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 323 B 323 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 652 B 652 B
Serverless bundles
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_error.js 1.05 MB 1.05 MB
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.05 MB 1.05 MB
link.js 1.1 MB 1.1 MB
routerDirect.js 1.09 MB 1.09 MB
withRouter.js 1.09 MB 1.09 MB
Overall change 5.41 MB 5.41 MB
Commit: 25bb907

> 1 | .button {
| ^"
`)
expect(source).toMatch('./index.module.css:1:1')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What was the difference here that required updating it to no longer use matchInlineSnapShot 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

postcss-loader now emits an error message which includes the file path (since this commit on their end).

@ijjk
Copy link
Member

ijjk commented Oct 19, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
buildDuration 13s 13.2s ⚠️ +168ms
nodeModulesSize 64.4 MB 64.5 MB ⚠️ +88.5 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
/ failed reqs 0 0
/ total time (seconds) 2.423 2.543 ⚠️ +0.12
/ avg req/sec 1031.97 983.2 ⚠️ -48.77
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.274 1.456 ⚠️ +0.18
/error-in-render avg req/sec 1963.04 1716.81 ⚠️ -246.23
Client Bundles (main, webpack, commons)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..7765.js gzip 11.1 kB 11.1 kB
framework.HASH.js gzip 39 kB 39 kB
main-5aa1543..4e79.js gzip 7.34 kB 7.34 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.1 kB 58.1 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.94 kB 6.94 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-7d849dd..dule.js gzip 6.32 kB 6.32 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53 kB 53 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-89ad9e7..25bb.js gzip 1.34 kB 1.34 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.74 kB 7.74 kB
Client Pages Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-aeb707b..dule.js gzip 1.29 kB 1.29 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.39 kB 5.39 kB
Client Build Manifests
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 996 B
Overall change 3.01 kB 3.01 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
buildDuration 14.6s 14.5s -86ms
nodeModulesSize 64.4 MB 64.5 MB ⚠️ +88.5 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..7765.js gzip 11.1 kB 11.1 kB
framework.HASH.js gzip 39 kB 39 kB
main-5aa1543..4e79.js gzip 7.34 kB 7.34 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.1 kB 58.1 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.94 kB 6.94 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-7d849dd..dule.js gzip 6.32 kB 6.32 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53 kB 53 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-89ad9e7..25bb.js gzip 1.34 kB 1.34 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.74 kB 7.74 kB
Client Pages Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-aeb707b..dule.js gzip 1.29 kB 1.29 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.39 kB 5.39 kB
Client Build Manifests
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_error.js 1.06 MB 1.06 MB
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.06 MB 1.06 MB
link.js 1.1 MB 1.1 MB
routerDirect.js 1.1 MB 1.1 MB
withRouter.js 1.1 MB 1.1 MB
Overall change 5.42 MB 5.42 MB
Commit: fa02312

@timneutkens
Copy link
Member

Awesome PR @ludofischer 💯 I'm going to land this one. If you could add an explanation to my one comment that'd be great though 👍 🙏

@ijjk
Copy link
Member

ijjk commented Oct 19, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
buildDuration 11.4s 11.5s ⚠️ +82ms
nodeModulesSize 64.4 MB 64.5 MB ⚠️ +88.5 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
/ failed reqs 0 0
/ total time (seconds) 2.32 2.258 -0.06
/ avg req/sec 1077.72 1107.02 +29.3
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.326 1.403 ⚠️ +0.08
/error-in-render avg req/sec 1885.62 1782.41 ⚠️ -103.21
Client Bundles (main, webpack, commons)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..7765.js gzip 11.1 kB 11.1 kB
framework.HASH.js gzip 39 kB 39 kB
main-5aa1543..4e79.js gzip 7.34 kB 7.34 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.1 kB 58.1 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.94 kB 6.94 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-7d849dd..dule.js gzip 6.32 kB 6.32 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53 kB 53 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-89ad9e7..25bb.js gzip 1.34 kB 1.34 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.74 kB 7.74 kB
Client Pages Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-aeb707b..dule.js gzip 1.29 kB 1.29 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.39 kB 5.39 kB
Client Build Manifests
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 996 B
Overall change 3.01 kB 3.01 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
buildDuration 12.9s 13.2s ⚠️ +245ms
nodeModulesSize 64.4 MB 64.5 MB ⚠️ +88.5 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..7765.js gzip 11.1 kB 11.1 kB
framework.HASH.js gzip 39 kB 39 kB
main-5aa1543..4e79.js gzip 7.34 kB 7.34 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.1 kB 58.1 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
677f882d2ed8..dule.js gzip 6.94 kB 6.94 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-7d849dd..dule.js gzip 6.32 kB 6.32 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53 kB 53 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-89ad9e7..25bb.js gzip 1.34 kB 1.34 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.74 kB 7.74 kB
Client Pages Modern
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-aeb707b..dule.js gzip 1.29 kB 1.29 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.39 kB 5.39 kB
Client Build Manifests
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary ludofischer/next.js postcss-loader-4 Change
_error.js 1.06 MB 1.06 MB
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.06 MB 1.06 MB
link.js 1.1 MB 1.1 MB
routerDirect.js 1.1 MB 1.1 MB
withRouter.js 1.1 MB 1.1 MB
Overall change 5.42 MB 5.42 MB
Commit: bac74ec

@timneutkens timneutkens merged commit 0d3671c into vercel:canary Oct 19, 2020
@vercel vercel locked as resolved and limited conversation to collaborators Jan 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants