Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

fix: fix locale negotiation, fix #18676 #19552

Closed
wants to merge 1 commit into from
Closed

fix: fix locale negotiation, fix #18676 #19552

wants to merge 1 commit into from

Conversation

longlho
Copy link
Contributor

@longlho longlho commented Nov 26, 2020

@vercel vercel bot temporarily deployed to Preview November 26, 2020 03:06 Inactive
acceptPreferredLocale === defaultLocale &&
languages[0] !== defaultLocale
) {
// TODO: Bubble this up since we're serving default locale instead of preferred
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This piece if analytics is fairly important but not sure how this is done in next.js?

@ijjk
Copy link
Member

ijjk commented Nov 26, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary longlho/next.js locale Change
buildDuration 9.4s 9.5s ⚠️ +70ms
nodeModulesSize 85 MB 85.5 MB ⚠️ +535 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary longlho/next.js locale Change
/ failed reqs 0 0
/ total time (seconds) 2.135 2.186 ⚠️ +0.05
/ avg req/sec 1170.75 1143.46 ⚠️ -27.29
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.198 1.237 ⚠️ +0.04
/error-in-render avg req/sec 2087.56 2020.31 ⚠️ -67.25
Client Bundles (main, webpack, commons)
vercel/next.js canary longlho/next.js locale Change
677f882d2ed8..8b6e.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-90b3d5a..55ad.js gzip 6.54 kB 6.54 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary longlho/next.js locale Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary longlho/next.js locale Change
_app-7231d4b..5856.js gzip 1.28 kB 1.28 kB
_error-fca3d..2eb1.js gzip 3.44 kB 3.44 kB
hooks-d4591d..e7c2.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-db223d9..dbd7.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.01 kB
Client Build Manifests
vercel/next.js canary longlho/next.js locale Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Rendered Page Sizes
vercel/next.js canary longlho/next.js locale Change
index.html gzip 614 B 614 B
link.html gzip 621 B 621 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary longlho/next.js locale Change
buildDuration 11.6s 11.3s -278ms
nodeModulesSize 85 MB 85.5 MB ⚠️ +535 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary longlho/next.js locale Change
677f882d2ed8..8b6e.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-90b3d5a..55ad.js gzip 6.54 kB 6.54 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary longlho/next.js locale Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary longlho/next.js locale Change
_app-7231d4b..5856.js gzip 1.28 kB 1.28 kB
_error-fca3d..2eb1.js gzip 3.44 kB 3.44 kB
hooks-d4591d..e7c2.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-db223d9..dbd7.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.01 kB
Client Build Manifests
vercel/next.js canary longlho/next.js locale Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Serverless bundles
vercel/next.js canary longlho/next.js locale Change
_error.js 996 kB 996 kB
404.html 2.67 kB 2.67 kB
hooks.html 1.92 kB 1.92 kB
index.js 996 kB 996 kB
link.js 1.05 MB 1.05 MB
routerDirect.js 1.04 MB 1.04 MB
withRouter.js 1.04 MB 1.04 MB
Overall change 5.13 MB 5.13 MB
Commit: 25d7bab

@vercel vercel bot temporarily deployed to Preview November 26, 2020 03:19 Inactive
@ijjk
Copy link
Member

ijjk commented Nov 26, 2020

Failing test suites

Commit: 25d7bab

test/integration/i18n-support-base-path/test/index.test.js

  • i18n Support basePath > dev mode > should have correct values for non-prefixed path
  • i18n Support basePath > dev mode > should not have hydration mis-match from hash
  • i18n Support basePath > dev mode > should resolve auto-export dynamic route correctly
  • i18n Support basePath > dev mode > should navigate to auto-export dynamic page
  • i18n Support basePath > dev mode > should apply rewrites correctly
  • i18n Support basePath > dev mode > should navigate with locale prop correctly
  • i18n Support basePath > dev mode > should navigate with locale prop correctly GSP
  • i18n Support basePath > dev mode > should navigate with locale false correctly
  • i18n Support basePath > dev mode > should navigate with locale false correctly GSP
  • i18n Support basePath > dev mode > should update asPath on the client correctly
  • i18n Support basePath > dev mode > should use correct default locale for locale domains
  • i18n Support basePath > dev mode > should not redirect to accept-lang preferred locale with locale cookie
  • i18n Support basePath > dev mode > should handle locales with domain
  • i18n Support basePath > dev mode > should provide correctly defaultLocale for locale domain
  • i18n Support basePath > dev mode > should generate AMP pages with all locales
  • i18n Support basePath > dev mode > should work with AMP first page with all locales
  • i18n Support basePath > dev mode > should generate fallbacks with all locales
  • i18n Support basePath > dev mode > should generate auto-export page with all locales
  • i18n Support basePath > dev mode > should generate non-dynamic GSP page with all locales
  • i18n Support basePath > dev mode > should 404 for GSP pages that returned notFound
  • i18n Support basePath > dev mode > should transition on client properly for page that starts with locale
  • i18n Support basePath > dev mode > should load getStaticProps page correctly SSR (default locale no prefix)
  • i18n Support basePath > dev mode > should load getStaticProps fallback prerender page correctly SSR (default locale no prefix)
  • i18n Support basePath > dev mode > should load getStaticProps fallback non-prerender page correctly (default locale no prefix
  • i18n Support basePath > dev mode > should use default locale for / without accept-language
  • i18n Support basePath > dev mode > should load getStaticProps page correctly SSR
  • i18n Support basePath > dev mode > should load getStaticProps fallback prerender page correctly SSR
  • i18n Support basePath > dev mode > should load getStaticProps fallback non-prerender page correctly
  • i18n Support basePath > dev mode > should load getServerSideProps page correctly SSR (default locale no prefix)
  • i18n Support basePath > dev mode > should navigate client side for default locale with no prefix
  • i18n Support basePath > dev mode > should load getStaticProps fallback non-prerender page another locale correctly
  • i18n Support basePath > dev mode > should load getStaticProps non-fallback correctly
  • i18n Support basePath > dev mode > should load getStaticProps non-fallback correctly another locale
  • i18n Support basePath > dev mode > should load getStaticProps non-fallback correctly another locale via cookie
  • i18n Support basePath > dev mode > should load getServerSideProps page correctly SSR
  • i18n Support basePath > dev mode > should load dynamic getServerSideProps page correctly SSR
  • i18n Support basePath > dev mode > should navigate to another page and back correctly with locale
  • i18n Support basePath > dev mode > should navigate to getStaticProps page and back correctly with locale
  • i18n Support basePath > production mode > should have correct values for non-prefixed path
  • i18n Support basePath > production mode > should not have hydration mis-match from hash
  • i18n Support basePath > production mode > should resolve auto-export dynamic route correctly
  • i18n Support basePath > production mode > should navigate to auto-export dynamic page
  • i18n Support basePath > production mode > should apply rewrites correctly
  • i18n Support basePath > production mode > should navigate with locale prop correctly
  • i18n Support basePath > production mode > should navigate with locale prop correctly GSP
  • i18n Support basePath > production mode > should navigate with locale false correctly
  • i18n Support basePath > production mode > should navigate with locale false correctly GSP
  • i18n Support basePath > production mode > should update asPath on the client correctly
  • i18n Support basePath > production mode > should handle fallback correctly after generating
  • i18n Support basePath > production mode > should use correct default locale for locale domains
  • i18n Support basePath > production mode > should not redirect to accept-lang preferred locale with locale cookie
  • i18n Support basePath > production mode > should handle locales with domain
  • i18n Support basePath > production mode > should provide correctly defaultLocale for locale domain
  • i18n Support basePath > production mode > should generate AMP pages with all locales
  • i18n Support basePath > production mode > should work with AMP first page with all locales
  • i18n Support basePath > production mode > should generate fallbacks with all locales
  • i18n Support basePath > production mode > should generate auto-export page with all locales
  • i18n Support basePath > production mode > should generate non-dynamic GSP page with all locales
  • i18n Support basePath > production mode > should not output GSP pages that returned notFound
  • i18n Support basePath > production mode > should 404 for GSP pages that returned notFound
  • i18n Support basePath > production mode > should transition on client properly for page that starts with locale
  • i18n Support basePath > production mode > should load getStaticProps page correctly SSR (default locale no prefix)
  • i18n Support basePath > production mode > should load getStaticProps fallback prerender page correctly SSR (default locale no prefix)
  • i18n Support basePath > production mode > should load getStaticProps fallback non-prerender page correctly (default locale no prefix
  • i18n Support basePath > production mode > should use default locale for / without accept-language
  • i18n Support basePath > production mode > should load getStaticProps page correctly SSR
  • i18n Support basePath > production mode > should load getStaticProps fallback prerender page correctly SSR
  • i18n Support basePath > production mode > should load getStaticProps fallback non-prerender page correctly
  • i18n Support basePath > production mode > should load getServerSideProps page correctly SSR (default locale no prefix)
  • i18n Support basePath > production mode > should navigate client side for default locale with no prefix
  • i18n Support basePath > production mode > should load getStaticProps fallback non-prerender page another locale correctly
  • i18n Support basePath > production mode > should load getStaticProps non-fallback correctly
  • i18n Support basePath > production mode > should load getStaticProps non-fallback correctly another locale
  • i18n Support basePath > production mode > should load getStaticProps non-fallback correctly another locale via cookie
  • i18n Support basePath > production mode > should load getServerSideProps page correctly SSR
  • i18n Support basePath > production mode > should load dynamic getServerSideProps page correctly SSR
  • i18n Support basePath > production mode > should navigate to another page and back correctly with locale
  • i18n Support basePath > production mode > should navigate to getStaticProps page and back correctly with locale
  • i18n Support basePath > serverless mode > should have correct props for blocking notFound
  • i18n Support basePath > serverless mode > should have correct values for non-prefixed path
  • i18n Support basePath > serverless mode > should not have hydration mis-match from hash
  • i18n Support basePath > serverless mode > should resolve auto-export dynamic route correctly
  • i18n Support basePath > serverless mode > should navigate to auto-export dynamic page
  • i18n Support basePath > serverless mode > should apply rewrites correctly
  • i18n Support basePath > serverless mode > should navigate with locale prop correctly
  • i18n Support basePath > serverless mode > should navigate with locale prop correctly GSP
  • i18n Support basePath > serverless mode > should navigate with locale false correctly
  • i18n Support basePath > serverless mode > should navigate with locale false correctly GSP
  • i18n Support basePath > serverless mode > should update asPath on the client correctly
  • i18n Support basePath > serverless mode > should handle fallback correctly after generating
  • i18n Support basePath > serverless mode > should use correct default locale for locale domains
  • i18n Support basePath > serverless mode > should not redirect to accept-lang preferred locale with locale cookie
  • i18n Support basePath > serverless mode > should handle locales with domain
  • i18n Support basePath > serverless mode > should provide correctly defaultLocale for locale domain
  • i18n Support basePath > serverless mode > should generate AMP pages with all locales
  • i18n Support basePath > serverless mode > should work with AMP first page with all locales
  • i18n Support basePath > serverless mode > should generate fallbacks with all locales
  • i18n Support basePath > serverless mode > should generate auto-export page with all locales
  • i18n Support basePath > serverless mode > should generate non-dynamic GSP page with all locales
  • i18n Support basePath > serverless mode > should not output GSP pages that returned notFound
  • i18n Support basePath > serverless mode > should 404 for GSP pages that returned notFound
  • i18n Support basePath > serverless mode > should transition on client properly for page that starts with locale
  • i18n Support basePath > serverless mode > should load getStaticProps page correctly SSR (default locale no prefix)
  • i18n Support basePath > serverless mode > should load getStaticProps fallback prerender page correctly SSR (default locale no prefix)
  • i18n Support basePath > serverless mode > should load getStaticProps fallback non-prerender page correctly (default locale no prefix
  • i18n Support basePath > serverless mode > should use default locale for / without accept-language
  • i18n Support basePath > serverless mode > should load getStaticProps page correctly SSR
  • i18n Support basePath > serverless mode > should load getStaticProps fallback prerender page correctly SSR
  • i18n Support basePath > serverless mode > should load getStaticProps fallback non-prerender page correctly
  • i18n Support basePath > serverless mode > should load getServerSideProps page correctly SSR (default locale no prefix)
  • i18n Support basePath > serverless mode > should navigate client side for default locale with no prefix
  • i18n Support basePath > serverless mode > should load getStaticProps fallback non-prerender page another locale correctly
  • i18n Support basePath > serverless mode > should load getStaticProps non-fallback correctly
  • i18n Support basePath > serverless mode > should load getStaticProps non-fallback correctly another locale
  • i18n Support basePath > serverless mode > should load getStaticProps non-fallback correctly another locale via cookie
  • i18n Support basePath > serverless mode > should load getServerSideProps page correctly SSR
  • i18n Support basePath > serverless mode > should load dynamic getServerSideProps page correctly SSR
  • i18n Support basePath > serverless mode > should navigate to another page and back correctly with locale
  • i18n Support basePath > serverless mode > should navigate to getStaticProps page and back correctly with locale
  • i18n Support basePath > with localeDetection disabled > should not detect locale from accept-language
  • i18n Support basePath > with localeDetection disabled > should set locale from detected path
Expand output

● i18n Support basePath › dev mode › should have correct values for non-prefixed path

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  140 |       expect($('#router-locale').text()).toBe('en-US')
  141 |       expect($('#router-default-locale').text()).toBe('en-US')
> 142 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
      |                                                       ^
  143 |       expect($('#router-pathname').text()).toBe(pathname)
  144 |       expect($('#router-as-path').text()).toBe(asPath)
  145 |     }

  at Object.<anonymous> (integration/i18n-support/test/shared.js:142:55)

● i18n Support basePath › dev mode › should not have hydration mis-match from hash

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  156 |     expect(
  157 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 158 |     ).toEqual(locales)
      |       ^
  159 |     expect(await browser.elementByCss('#router-pathname').text()).toBe('/')
  160 |     expect(await browser.elementByCss('#router-as-path').text()).toBe('/')
  161 |     expect(await browser.eval('window.caughtWarns')).toEqual([])

  at Object.<anonymous> (integration/i18n-support/test/shared.js:158:7)

● i18n Support basePath › dev mode › should resolve auto-export dynamic route correctly

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

Expected: 200
Received: 404

  367 |         }
  368 |       )
> 369 |       expect(res.status).toBe(200)
      |                          ^
  370 |       expect(await res.text()).toContain('dynamic page')
  371 |     }
  372 |   })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:369:26)

● i18n Support basePath › dev mode › should navigate to auto-export dynamic page

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  386 |       expect(
  387 |         JSON.parse(await browser.elementByCss('#router-locales').text())
> 388 |       ).toEqual(locales)
      |         ^
  389 |       expect(
  390 |         JSON.parse(await browser.elementByCss('#router-query').text())
  391 |       ).toEqual({ slug: 'first' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:388:9)

● i18n Support basePath › dev mode › should apply rewrites correctly

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

Expected: 200
Received: 404

  536 |       )
  537 | 
> 538 |       expect(res.status).toBe(200)
      |                          ^
  539 | 
  540 |       html = await res.text()
  541 |       $ = cheerio.load(html)

  at Object.<anonymous> (integration/i18n-support/test/shared.js:538:26)

● i18n Support basePath › dev mode › should navigate with locale prop correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  604 |     expect(
  605 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 606 |     ).toEqual(locales)
      |       ^
  607 |     expect(
  608 |       JSON.parse(await browser.elementByCss('#router-query').text())
  609 |     ).toEqual({ nextLocale: 'fr' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:606:7)

● i18n Support basePath › dev mode › should navigate with locale prop correctly GSP

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  696 |     expect(
  697 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 698 |     ).toEqual(locales)
      |       ^
  699 |     expect(
  700 |       JSON.parse(await browser.elementByCss('#router-query').text())
  701 |     ).toEqual({ nextLocale: 'nl' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:698:7)

● i18n Support basePath › dev mode › should navigate with locale false correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  818 |     expect(
  819 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 820 |     ).toEqual(locales)
      |       ^
  821 |     expect(
  822 |       JSON.parse(await browser.elementByCss('#router-query').text())
  823 |     ).toEqual({ nextLocale: 'fr' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:820:7)

● i18n Support basePath › dev mode › should navigate with locale false correctly GSP

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  914 |     expect(
  915 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 916 |     ).toEqual(locales)
      |       ^
  917 |     expect(
  918 |       JSON.parse(await browser.elementByCss('#router-query').text())
  919 |     ).toEqual({ nextLocale: 'nl' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:916:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should update asPath on the client correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1001 |       expect(
  1002 |         JSON.parse(await browser.elementByCss('#router-locales').text())
> 1003 |       ).toEqual(locales)
       |         ^
  1004 |       expect(await browser.elementByCss('#router-as-path').text()).toBe('/')
  1005 |       expect(await browser.elementByCss('#router-pathname').text()).toBe('/')
  1006 |     }

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1003:9)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should use correct default locale for locale domains

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1054 |     expect($('#router-pathname').text()).toBe('/')
  1055 |     // expect(JSON.parse($('#router-locales').text())).toEqual(['fr','fr-BE'])
> 1056 |     expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                     ^
  1057 | 
  1058 |     const res2 = await fetchViaHTTP(
  1059 |       ctx.appPort,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1056:53)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should not redirect to accept-lang preferred locale with locale cookie

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1154 | 
  1155 |     expect($('#router-locale').text()).toBe('en-US')
> 1156 |     expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                     ^
  1157 |     expect($('html').attr('lang')).toBe('en-US')
  1158 |     expect($('#router-pathname').text()).toBe('/')
  1159 |     expect($('#router-as-path').text()).toBe('/')

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1156:53)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should handle locales with domain

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1251 |         expect($('html').attr('lang')).toBe(locale)
  1252 |         expect($('#router-locale').text()).toBe(locale)
> 1253 |         expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                         ^
  1254 |         // this will not be the domain's defaultLocale since we don't
  1255 |         // generate a prerendered version for each locale domain currently
  1256 |         expect($('#router-default-locale').text()).toBe('en-US')

  at checkDomainLocales (integration/i18n-support/test/shared.js:1253:57)
      at runMicrotasks (<anonymous>)
  at Object.<anonymous> (integration/i18n-support/test/shared.js:1262:9)

● i18n Support basePath › dev mode › should provide correctly defaultLocale for locale domain

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  1287 |       expect($('#router-locale').text()).toBe(locale)
  1288 |       expect($('#router-default-locale').text()).toBe(locale)
> 1289 |       expect(JSON.parse($('#props').text())).toEqual({
       |                                              ^
  1290 |         defaultLocale: locale,
  1291 |         locale,
  1292 |         locales,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1289:46)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should generate AMP pages with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1307 |       expect($('#is-amp').text()).toBe('no')
  1308 |       expect($('#router-locale').text()).toBe(locale)
> 1309 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1310 |       expect($('#router-pathname').text()).toBe('/amp/amp-hybrid')
  1311 |       expect($('#router-as-path').text()).toBe('/amp/amp-hybrid')
  1312 |       expect(JSON.parse($('#router-query').text())).toEqual({})

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1309:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should work with AMP first page with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1341 |       expect($('#is-amp').text()).toBe('yes')
  1342 |       expect($('#router-locale').text()).toBe(locale)
> 1343 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1344 |       expect($('#router-pathname').text()).toBe('/amp/amp-first')
  1345 |       expect($('#router-as-path').text()).toBe('/amp/amp-first')
  1346 |       expect(JSON.parse($('#router-query').text())).toEqual({})

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1343:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should generate fallbacks with all locales

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

Expected: "zh-Hant-TW"
Received: "en-US"

  1356 |       )
  1357 |       const $ = cheerio.load(html)
> 1358 |       expect($('html').attr('lang')).toBe(locale)
       |                                      ^
  1359 |     }
  1360 |   })
  1361 | 

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1358:38)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should generate auto-export page with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1368 |       expect($('#router-as-path').text()).toBe('/')
  1369 |       expect($('#router-pathname').text()).toBe('/')
> 1370 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1371 | 
  1372 |       const html2 = await renderViaHTTP(
  1373 |         ctx.appPort,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1370:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should generate non-dynamic GSP page with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1394 |       expect($('#router-as-path').text()).toBe('/gsp')
  1395 |       expect($('#router-pathname').text()).toBe('/gsp')
> 1396 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1397 | 
  1398 |       // make sure locale is case-insensitive
  1399 |       const html2 = await renderViaHTTP(

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1396:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should 404 for GSP pages that returned notFound

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

Expected: 200
Received: 404

  1432 |         `${ctx.basePath}/${locale}/not-found`
  1433 |       )
> 1434 |       expect(res.status).toBe(skippedLocales.includes(locale) ? 404 : 200)
       |                          ^
  1435 | 
  1436 |       if (skippedLocales.includes(locale)) {
  1437 |         const browser = await webdriver(

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1434:26)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should transition on client properly for page that starts with locale

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1476 |     expect(
  1477 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 1478 |     ).toEqual(locales)
       |       ^
  1479 |     expect(
  1480 |       JSON.parse(await browser.elementByCss('#router-query').text())
  1481 |     ).toEqual({})

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1478:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should load getStaticProps page correctly SSR (default locale no prefix)

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  1699 |     const $ = cheerio.load(html)
  1700 | 
> 1701 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1702 |       locale: 'en-US',
  1703 |       locales,
  1704 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1701:44)

● i18n Support basePath › dev mode › should load getStaticProps fallback prerender page correctly SSR (default locale no prefix)

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "first",
    },

  1716 |     const $ = cheerio.load(html)
  1717 | 
> 1718 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1719 |       locale: 'en-US',
  1720 |       locales,
  1721 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1718:44)

● i18n Support basePath › dev mode › should load getStaticProps fallback non-prerender page correctly (default locale no prefix

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "another",
    },

  1740 |     await browser.waitForElementByCss('#props')
  1741 | 
> 1742 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  1743 |       locale: 'en-US',
  1744 |       locales,
  1745 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1742:69)

● i18n Support basePath › dev mode › should use default locale for / without accept-language

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1810 | 
  1811 |     expect($('#router-locale').text()).toBe('en-US')
> 1812 |     expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                     ^
  1813 |     expect(JSON.parse($('#router-query').text())).toEqual({})
  1814 |     expect($('#router-pathname').text()).toBe('/')
  1815 |     expect($('#router-as-path').text()).toBe('/')

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1812:53)

● i18n Support basePath › dev mode › should load getStaticProps page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  1840 |     const $ = cheerio.load(html)
  1841 | 
> 1842 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1843 |       locale: 'en-US',
  1844 |       locales,
  1845 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1842:44)

● i18n Support basePath › dev mode › should load getStaticProps fallback prerender page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "first",
    },

  1857 |     const $ = cheerio.load(html)
  1858 | 
> 1859 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1860 |       locale: 'en-US',
  1861 |       locales,
  1862 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1859:44)

● i18n Support basePath › dev mode › should load getStaticProps fallback non-prerender page correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "another",
    },

  1881 |     await browser.waitForElementByCss('#props')
  1882 | 
> 1883 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  1884 |       locale: 'en',
  1885 |       locales,
  1886 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1883:69)

● i18n Support basePath › dev mode › should load getServerSideProps page correctly SSR (default locale no prefix)

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  1906 |     const $ = cheerio.load(html)
  1907 | 
> 1908 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1909 |       locale: 'en-US',
  1910 |       locales,
  1911 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1908:44)

● i18n Support basePath › dev mode › should navigate client side for default locale with no prefix

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1925 |       expect(
  1926 |         JSON.parse(await browser.elementByCss('#router-locales').text())
> 1927 |       ).toEqual(locales)
       |         ^
  1928 |       expect(
  1929 |         JSON.parse(await browser.elementByCss('#router-query').text())
  1930 |       ).toEqual({})

  at checkIndexValues (integration/i18n-support/test/shared.js:1927:9)
  at Object.<anonymous> (integration/i18n-support/test/shared.js:1938:5)

● i18n Support basePath › dev mode › should load getStaticProps fallback non-prerender page another locale correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "another",
    },

  2005 |     await browser.waitForElementByCss('#props')
  2006 | 
> 2007 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  2008 |       locale: 'nl-NL',
  2009 |       locales,
  2010 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2007:69)

● i18n Support basePath › dev mode › should load getStaticProps non-fallback correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "first",
    },

  2032 |     await browser.waitForElementByCss('#props')
  2033 | 
> 2034 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  2035 |       locale: 'en-US',
  2036 |       locales,
  2037 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2034:69)

● i18n Support basePath › dev mode › should load getStaticProps non-fallback correctly another locale

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "second",
    },

  2062 |     await browser.waitForElementByCss('#props')
  2063 | 
> 2064 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  2065 |       locale: 'nl-NL',
  2066 |       locales,
  2067 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2064:69)

● i18n Support basePath › dev mode › should load getStaticProps non-fallback correctly another locale via cookie

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "second",
    },

  2097 |     const $ = cheerio.load(html)
  2098 | 
> 2099 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2100 |       locale: 'nl-NL',
  2101 |       locales,
  2102 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2099:44)

● i18n Support basePath › dev mode › should load getServerSideProps page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  2117 |     const $ = cheerio.load(html)
  2118 | 
> 2119 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2120 |       locale: 'en-US',
  2121 |       locales,
  2122 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2119:44)

● i18n Support basePath › dev mode › should load dynamic getServerSideProps page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "first",
    },

  2148 |     const $ = cheerio.load(html)
  2149 | 
> 2150 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2151 |       locale: 'en-US',
  2152 |       locales,
  2153 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2150:44)

● i18n Support basePath › dev mode › should navigate to another page and back correctly with locale

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  2200 |     expect(
  2201 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 2202 |     ).toEqual(locales)
       |       ^
  2203 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
  2204 |       locale: 'en',
  2205 |       locales,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2202:7)

● i18n Support basePath › dev mode › should navigate to getStaticProps page and back correctly with locale

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  2229 |     expect(
  2230 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 2231 |     ).toEqual(locales)
       |       ^
  2232 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
  2233 |       locale: 'en',
  2234 |       locales,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2231:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should have correct values for non-prefixed path

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  140 |       expect($('#router-locale').text()).toBe('en-US')
  141 |       expect($('#router-default-locale').text()).toBe('en-US')
> 142 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
      |                                                       ^
  143 |       expect($('#router-pathname').text()).toBe(pathname)
  144 |       expect($('#router-as-path').text()).toBe(asPath)
  145 |     }

  at Object.<anonymous> (integration/i18n-support/test/shared.js:142:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should not have hydration mis-match from hash

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  156 |     expect(
  157 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 158 |     ).toEqual(locales)
      |       ^
  159 |     expect(await browser.elementByCss('#router-pathname').text()).toBe('/')
  160 |     expect(await browser.elementByCss('#router-as-path').text()).toBe('/')
  161 |     expect(await browser.eval('window.caughtWarns')).toEqual([])

  at Object.<anonymous> (integration/i18n-support/test/shared.js:158:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should resolve auto-export dynamic route correctly

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

Expected: 200
Received: 404

  367 |         }
  368 |       )
> 369 |       expect(res.status).toBe(200)
      |                          ^
  370 |       expect(await res.text()).toContain('dynamic page')
  371 |     }
  372 |   })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:369:26)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should navigate to auto-export dynamic page

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  386 |       expect(
  387 |         JSON.parse(await browser.elementByCss('#router-locales').text())
> 388 |       ).toEqual(locales)
      |         ^
  389 |       expect(
  390 |         JSON.parse(await browser.elementByCss('#router-query').text())
  391 |       ).toEqual({ slug: 'first' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:388:9)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should apply rewrites correctly

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

Expected: 200
Received: 404

  536 |       )
  537 | 
> 538 |       expect(res.status).toBe(200)
      |                          ^
  539 | 
  540 |       html = await res.text()
  541 |       $ = cheerio.load(html)

  at Object.<anonymous> (integration/i18n-support/test/shared.js:538:26)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should navigate with locale prop correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  604 |     expect(
  605 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 606 |     ).toEqual(locales)
      |       ^
  607 |     expect(
  608 |       JSON.parse(await browser.elementByCss('#router-query').text())
  609 |     ).toEqual({ nextLocale: 'fr' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:606:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should navigate with locale prop correctly GSP

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  696 |     expect(
  697 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 698 |     ).toEqual(locales)
      |       ^
  699 |     expect(
  700 |       JSON.parse(await browser.elementByCss('#router-query').text())
  701 |     ).toEqual({ nextLocale: 'nl' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:698:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should navigate with locale false correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  818 |     expect(
  819 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 820 |     ).toEqual(locales)
      |       ^
  821 |     expect(
  822 |       JSON.parse(await browser.elementByCss('#router-query').text())
  823 |     ).toEqual({ nextLocale: 'fr' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:820:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should navigate with locale false correctly GSP

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  914 |     expect(
  915 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 916 |     ).toEqual(locales)
      |       ^
  917 |     expect(
  918 |       JSON.parse(await browser.elementByCss('#router-query').text())
  919 |     ).toEqual({ nextLocale: 'nl' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:916:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should update asPath on the client correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1001 |       expect(
  1002 |         JSON.parse(await browser.elementByCss('#router-locales').text())
> 1003 |       ).toEqual(locales)
       |         ^
  1004 |       expect(await browser.elementByCss('#router-as-path').text()).toBe('/')
  1005 |       expect(await browser.elementByCss('#router-pathname').text()).toBe('/')
  1006 |     }

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1003:9)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should handle fallback correctly after generating

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1026 |       expect($('#gsp').text()).toBe('gsp page')
  1027 |       expect($('#router-locale').text()).toBe('en')
> 1028 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1029 |       expect($('#router-pathname').text()).toBe('/gsp/fallback/[slug]')
  1030 |       expect($('#router-as-path').text()).toBe('/gsp/fallback/hello-fallback')
  1031 |     })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1028:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should use correct default locale for locale domains

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1054 |     expect($('#router-pathname').text()).toBe('/')
  1055 |     // expect(JSON.parse($('#router-locales').text())).toEqual(['fr','fr-BE'])
> 1056 |     expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                     ^
  1057 | 
  1058 |     const res2 = await fetchViaHTTP(
  1059 |       ctx.appPort,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1056:53)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should not redirect to accept-lang preferred locale with locale cookie

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1154 | 
  1155 |     expect($('#router-locale').text()).toBe('en-US')
> 1156 |     expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                     ^
  1157 |     expect($('html').attr('lang')).toBe('en-US')
  1158 |     expect($('#router-pathname').text()).toBe('/')
  1159 |     expect($('#router-as-path').text()).toBe('/')

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1156:53)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should handle locales with domain

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1251 |         expect($('html').attr('lang')).toBe(locale)
  1252 |         expect($('#router-locale').text()).toBe(locale)
> 1253 |         expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                         ^
  1254 |         // this will not be the domain's defaultLocale since we don't
  1255 |         // generate a prerendered version for each locale domain currently
  1256 |         expect($('#router-default-locale').text()).toBe('en-US')

  at checkDomainLocales (integration/i18n-support/test/shared.js:1253:57)
      at runMicrotasks (<anonymous>)
  at Object.<anonymous> (integration/i18n-support/test/shared.js:1262:9)

● i18n Support basePath › production mode › should provide correctly defaultLocale for locale domain

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  1287 |       expect($('#router-locale').text()).toBe(locale)
  1288 |       expect($('#router-default-locale').text()).toBe(locale)
> 1289 |       expect(JSON.parse($('#props').text())).toEqual({
       |                                              ^
  1290 |         defaultLocale: locale,
  1291 |         locale,
  1292 |         locales,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1289:46)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should generate AMP pages with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1307 |       expect($('#is-amp').text()).toBe('no')
  1308 |       expect($('#router-locale').text()).toBe(locale)
> 1309 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1310 |       expect($('#router-pathname').text()).toBe('/amp/amp-hybrid')
  1311 |       expect($('#router-as-path').text()).toBe('/amp/amp-hybrid')
  1312 |       expect(JSON.parse($('#router-query').text())).toEqual({})

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1309:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should work with AMP first page with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1341 |       expect($('#is-amp').text()).toBe('yes')
  1342 |       expect($('#router-locale').text()).toBe(locale)
> 1343 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1344 |       expect($('#router-pathname').text()).toBe('/amp/amp-first')
  1345 |       expect($('#router-as-path').text()).toBe('/amp/amp-first')
  1346 |       expect(JSON.parse($('#router-query').text())).toEqual({})

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1343:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should generate fallbacks with all locales

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

Expected: "zh-Hant-TW"
Received: "en-US"

  1356 |       )
  1357 |       const $ = cheerio.load(html)
> 1358 |       expect($('html').attr('lang')).toBe(locale)
       |                                      ^
  1359 |     }
  1360 |   })
  1361 | 

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1358:38)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should generate auto-export page with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1368 |       expect($('#router-as-path').text()).toBe('/')
  1369 |       expect($('#router-pathname').text()).toBe('/')
> 1370 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1371 | 
  1372 |       const html2 = await renderViaHTTP(
  1373 |         ctx.appPort,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1370:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should generate non-dynamic GSP page with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1394 |       expect($('#router-as-path').text()).toBe('/gsp')
  1395 |       expect($('#router-pathname').text()).toBe('/gsp')
> 1396 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1397 | 
  1398 |       // make sure locale is case-insensitive
  1399 |       const html2 = await renderViaHTTP(

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1396:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should not output GSP pages that returned notFound

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

Expected: true
Received: false

  1418 |         const dataPath = join(ctx.buildPagesDir, locale, 'not-found.json')
  1419 |         console.log(pagePath)
> 1420 |         expect(await fs.exists(pagePath)).toBe(!skippedLocales.includes(locale))
       |                                           ^
  1421 |         expect(await fs.exists(dataPath)).toBe(!skippedLocales.includes(locale))
  1422 |       }
  1423 |     })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1420:43)

● i18n Support basePath › production mode › should 404 for GSP pages that returned notFound

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

Expected: 200
Received: 404

  1432 |         `${ctx.basePath}/${locale}/not-found`
  1433 |       )
> 1434 |       expect(res.status).toBe(skippedLocales.includes(locale) ? 404 : 200)
       |                          ^
  1435 | 
  1436 |       if (skippedLocales.includes(locale)) {
  1437 |         const browser = await webdriver(

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1434:26)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should transition on client properly for page that starts with locale

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1476 |     expect(
  1477 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 1478 |     ).toEqual(locales)
       |       ^
  1479 |     expect(
  1480 |       JSON.parse(await browser.elementByCss('#router-query').text())
  1481 |     ).toEqual({})

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1478:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should load getStaticProps page correctly SSR (default locale no prefix)

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  1699 |     const $ = cheerio.load(html)
  1700 | 
> 1701 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1702 |       locale: 'en-US',
  1703 |       locales,
  1704 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1701:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should load getStaticProps fallback prerender page correctly SSR (default locale no prefix)

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "first",
    },

  1716 |     const $ = cheerio.load(html)
  1717 | 
> 1718 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1719 |       locale: 'en-US',
  1720 |       locales,
  1721 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1718:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should load getStaticProps fallback non-prerender page correctly (default locale no prefix

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "another",
    },

  1740 |     await browser.waitForElementByCss('#props')
  1741 | 
> 1742 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  1743 |       locale: 'en-US',
  1744 |       locales,
  1745 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1742:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should use default locale for / without accept-language

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1810 | 
  1811 |     expect($('#router-locale').text()).toBe('en-US')
> 1812 |     expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                     ^
  1813 |     expect(JSON.parse($('#router-query').text())).toEqual({})
  1814 |     expect($('#router-pathname').text()).toBe('/')
  1815 |     expect($('#router-as-path').text()).toBe('/')

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1812:53)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should load getStaticProps page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  1840 |     const $ = cheerio.load(html)
  1841 | 
> 1842 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1843 |       locale: 'en-US',
  1844 |       locales,
  1845 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1842:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should load getStaticProps fallback prerender page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "first",
    },

  1857 |     const $ = cheerio.load(html)
  1858 | 
> 1859 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1860 |       locale: 'en-US',
  1861 |       locales,
  1862 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1859:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should load getStaticProps fallback non-prerender page correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "another",
    },

  1881 |     await browser.waitForElementByCss('#props')
  1882 | 
> 1883 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  1884 |       locale: 'en',
  1885 |       locales,
  1886 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1883:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should load getServerSideProps page correctly SSR (default locale no prefix)

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  1906 |     const $ = cheerio.load(html)
  1907 | 
> 1908 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1909 |       locale: 'en-US',
  1910 |       locales,
  1911 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1908:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should navigate client side for default locale with no prefix

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1925 |       expect(
  1926 |         JSON.parse(await browser.elementByCss('#router-locales').text())
> 1927 |       ).toEqual(locales)
       |         ^
  1928 |       expect(
  1929 |         JSON.parse(await browser.elementByCss('#router-query').text())
  1930 |       ).toEqual({})

  at checkIndexValues (integration/i18n-support/test/shared.js:1927:9)
      at runMicrotasks (<anonymous>)
  at Object.<anonymous> (integration/i18n-support/test/shared.js:1938:5)

● i18n Support basePath › production mode › should load getStaticProps fallback non-prerender page another locale correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "another",
    },

  2005 |     await browser.waitForElementByCss('#props')
  2006 | 
> 2007 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  2008 |       locale: 'nl-NL',
  2009 |       locales,
  2010 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2007:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should load getStaticProps non-fallback correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "first",
    },

  2032 |     await browser.waitForElementByCss('#props')
  2033 | 
> 2034 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  2035 |       locale: 'en-US',
  2036 |       locales,
  2037 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2034:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should load getStaticProps non-fallback correctly another locale

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "second",
    },

  2062 |     await browser.waitForElementByCss('#props')
  2063 | 
> 2064 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  2065 |       locale: 'nl-NL',
  2066 |       locales,
  2067 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2064:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should load getStaticProps non-fallback correctly another locale via cookie

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "second",
    },

  2097 |     const $ = cheerio.load(html)
  2098 | 
> 2099 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2100 |       locale: 'nl-NL',
  2101 |       locales,
  2102 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2099:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should load getServerSideProps page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  2117 |     const $ = cheerio.load(html)
  2118 | 
> 2119 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2120 |       locale: 'en-US',
  2121 |       locales,
  2122 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2119:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should load dynamic getServerSideProps page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "first",
    },

  2148 |     const $ = cheerio.load(html)
  2149 | 
> 2150 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2151 |       locale: 'en-US',
  2152 |       locales,
  2153 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2150:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should navigate to another page and back correctly with locale

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  2200 |     expect(
  2201 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 2202 |     ).toEqual(locales)
       |       ^
  2203 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
  2204 |       locale: 'en',
  2205 |       locales,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2202:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should navigate to getStaticProps page and back correctly with locale

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  2229 |     expect(
  2230 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 2231 |     ).toEqual(locales)
       |       ^
  2232 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
  2233 |       locale: 'en',
  2234 |       locales,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2231:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should have correct props for blocking notFound

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -7,10 +7,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  127 | 
  128 |       expect($('#not-found').text().length > 0).toBe(true)
> 129 |       expect(props).toEqual({
      |                     ^
  130 |         is404: true,
  131 |         locale: 'nl',
  132 |         locales,

  at Object.<anonymous> (integration/i18n-support-base-path/test/index.test.js:129:21)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should have correct values for non-prefixed path

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  140 |       expect($('#router-locale').text()).toBe('en-US')
  141 |       expect($('#router-default-locale').text()).toBe('en-US')
> 142 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
      |                                                       ^
  143 |       expect($('#router-pathname').text()).toBe(pathname)
  144 |       expect($('#router-as-path').text()).toBe(asPath)
  145 |     }

  at Object.<anonymous> (integration/i18n-support/test/shared.js:142:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should not have hydration mis-match from hash

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  156 |     expect(
  157 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 158 |     ).toEqual(locales)
      |       ^
  159 |     expect(await browser.elementByCss('#router-pathname').text()).toBe('/')
  160 |     expect(await browser.elementByCss('#router-as-path').text()).toBe('/')
  161 |     expect(await browser.eval('window.caughtWarns')).toEqual([])

  at Object.<anonymous> (integration/i18n-support/test/shared.js:158:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should resolve auto-export dynamic route correctly

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

Expected: 200
Received: 404

  367 |         }
  368 |       )
> 369 |       expect(res.status).toBe(200)
      |                          ^
  370 |       expect(await res.text()).toContain('dynamic page')
  371 |     }
  372 |   })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:369:26)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should navigate to auto-export dynamic page

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  386 |       expect(
  387 |         JSON.parse(await browser.elementByCss('#router-locales').text())
> 388 |       ).toEqual(locales)
      |         ^
  389 |       expect(
  390 |         JSON.parse(await browser.elementByCss('#router-query').text())
  391 |       ).toEqual({ slug: 'first' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:388:9)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should apply rewrites correctly

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

Expected: 200
Received: 404

  536 |       )
  537 | 
> 538 |       expect(res.status).toBe(200)
      |                          ^
  539 | 
  540 |       html = await res.text()
  541 |       $ = cheerio.load(html)

  at Object.<anonymous> (integration/i18n-support/test/shared.js:538:26)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should navigate with locale prop correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  604 |     expect(
  605 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 606 |     ).toEqual(locales)
      |       ^
  607 |     expect(
  608 |       JSON.parse(await browser.elementByCss('#router-query').text())
  609 |     ).toEqual({ nextLocale: 'fr' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:606:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should navigate with locale prop correctly GSP

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  696 |     expect(
  697 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 698 |     ).toEqual(locales)
      |       ^
  699 |     expect(
  700 |       JSON.parse(await browser.elementByCss('#router-query').text())
  701 |     ).toEqual({ nextLocale: 'nl' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:698:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should navigate with locale false correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  818 |     expect(
  819 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 820 |     ).toEqual(locales)
      |       ^
  821 |     expect(
  822 |       JSON.parse(await browser.elementByCss('#router-query').text())
  823 |     ).toEqual({ nextLocale: 'fr' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:820:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should navigate with locale false correctly GSP

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  914 |     expect(
  915 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 916 |     ).toEqual(locales)
      |       ^
  917 |     expect(
  918 |       JSON.parse(await browser.elementByCss('#router-query').text())
  919 |     ).toEqual({ nextLocale: 'nl' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:916:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should update asPath on the client correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1001 |       expect(
  1002 |         JSON.parse(await browser.elementByCss('#router-locales').text())
> 1003 |       ).toEqual(locales)
       |         ^
  1004 |       expect(await browser.elementByCss('#router-as-path').text()).toBe('/')
  1005 |       expect(await browser.elementByCss('#router-pathname').text()).toBe('/')
  1006 |     }

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1003:9)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should handle fallback correctly after generating

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1026 |       expect($('#gsp').text()).toBe('gsp page')
  1027 |       expect($('#router-locale').text()).toBe('en')
> 1028 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1029 |       expect($('#router-pathname').text()).toBe('/gsp/fallback/[slug]')
  1030 |       expect($('#router-as-path').text()).toBe('/gsp/fallback/hello-fallback')
  1031 |     })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1028:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should use correct default locale for locale domains

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1054 |     expect($('#router-pathname').text()).toBe('/')
  1055 |     // expect(JSON.parse($('#router-locales').text())).toEqual(['fr','fr-BE'])
> 1056 |     expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                     ^
  1057 | 
  1058 |     const res2 = await fetchViaHTTP(
  1059 |       ctx.appPort,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1056:53)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should not redirect to accept-lang preferred locale with locale cookie

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1154 | 
  1155 |     expect($('#router-locale').text()).toBe('en-US')
> 1156 |     expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                     ^
  1157 |     expect($('html').attr('lang')).toBe('en-US')
  1158 |     expect($('#router-pathname').text()).toBe('/')
  1159 |     expect($('#router-as-path').text()).toBe('/')

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1156:53)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should handle locales with domain

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1251 |         expect($('html').attr('lang')).toBe(locale)
  1252 |         expect($('#router-locale').text()).toBe(locale)
> 1253 |         expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                         ^
  1254 |         // this will not be the domain's defaultLocale since we don't
  1255 |         // generate a prerendered version for each locale domain currently
  1256 |         expect($('#router-default-locale').text()).toBe('en-US')

  at checkDomainLocales (integration/i18n-support/test/shared.js:1253:57)
      at runMicrotasks (<anonymous>)
  at Object.<anonymous> (integration/i18n-support/test/shared.js:1262:9)

● i18n Support basePath › serverless mode › should provide correctly defaultLocale for locale domain

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  1287 |       expect($('#router-locale').text()).toBe(locale)
  1288 |       expect($('#router-default-locale').text()).toBe(locale)
> 1289 |       expect(JSON.parse($('#props').text())).toEqual({
       |                                              ^
  1290 |         defaultLocale: locale,
  1291 |         locale,
  1292 |         locales,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1289:46)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should generate AMP pages with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1307 |       expect($('#is-amp').text()).toBe('no')
  1308 |       expect($('#router-locale').text()).toBe(locale)
> 1309 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1310 |       expect($('#router-pathname').text()).toBe('/amp/amp-hybrid')
  1311 |       expect($('#router-as-path').text()).toBe('/amp/amp-hybrid')
  1312 |       expect(JSON.parse($('#router-query').text())).toEqual({})

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1309:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should work with AMP first page with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1341 |       expect($('#is-amp').text()).toBe('yes')
  1342 |       expect($('#router-locale').text()).toBe(locale)
> 1343 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1344 |       expect($('#router-pathname').text()).toBe('/amp/amp-first')
  1345 |       expect($('#router-as-path').text()).toBe('/amp/amp-first')
  1346 |       expect(JSON.parse($('#router-query').text())).toEqual({})

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1343:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should generate fallbacks with all locales

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

Expected: "zh-Hant-TW"
Received: "en-US"

  1356 |       )
  1357 |       const $ = cheerio.load(html)
> 1358 |       expect($('html').attr('lang')).toBe(locale)
       |                                      ^
  1359 |     }
  1360 |   })
  1361 | 

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1358:38)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should generate auto-export page with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1368 |       expect($('#router-as-path').text()).toBe('/')
  1369 |       expect($('#router-pathname').text()).toBe('/')
> 1370 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1371 | 
  1372 |       const html2 = await renderViaHTTP(
  1373 |         ctx.appPort,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1370:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should generate non-dynamic GSP page with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1394 |       expect($('#router-as-path').text()).toBe('/gsp')
  1395 |       expect($('#router-pathname').text()).toBe('/gsp')
> 1396 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1397 | 
  1398 |       // make sure locale is case-insensitive
  1399 |       const html2 = await renderViaHTTP(

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1396:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should not output GSP pages that returned notFound

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

Expected: true
Received: false

  1418 |         const dataPath = join(ctx.buildPagesDir, locale, 'not-found.json')
  1419 |         console.log(pagePath)
> 1420 |         expect(await fs.exists(pagePath)).toBe(!skippedLocales.includes(locale))
       |                                           ^
  1421 |         expect(await fs.exists(dataPath)).toBe(!skippedLocales.includes(locale))
  1422 |       }
  1423 |     })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1420:43)

● i18n Support basePath › serverless mode › should 404 for GSP pages that returned notFound

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

Expected: 200
Received: 404

  1432 |         `${ctx.basePath}/${locale}/not-found`
  1433 |       )
> 1434 |       expect(res.status).toBe(skippedLocales.includes(locale) ? 404 : 200)
       |                          ^
  1435 | 
  1436 |       if (skippedLocales.includes(locale)) {
  1437 |         const browser = await webdriver(

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1434:26)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should transition on client properly for page that starts with locale

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1476 |     expect(
  1477 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 1478 |     ).toEqual(locales)
       |       ^
  1479 |     expect(
  1480 |       JSON.parse(await browser.elementByCss('#router-query').text())
  1481 |     ).toEqual({})

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1478:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should load getStaticProps page correctly SSR (default locale no prefix)

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  1699 |     const $ = cheerio.load(html)
  1700 | 
> 1701 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1702 |       locale: 'en-US',
  1703 |       locales,
  1704 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1701:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should load getStaticProps fallback prerender page correctly SSR (default locale no prefix)

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "first",
    },

  1716 |     const $ = cheerio.load(html)
  1717 | 
> 1718 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1719 |       locale: 'en-US',
  1720 |       locales,
  1721 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1718:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should load getStaticProps fallback non-prerender page correctly (default locale no prefix

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "another",
    },

  1740 |     await browser.waitForElementByCss('#props')
  1741 | 
> 1742 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  1743 |       locale: 'en-US',
  1744 |       locales,
  1745 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1742:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should use default locale for / without accept-language

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1810 | 
  1811 |     expect($('#router-locale').text()).toBe('en-US')
> 1812 |     expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                     ^
  1813 |     expect(JSON.parse($('#router-query').text())).toEqual({})
  1814 |     expect($('#router-pathname').text()).toBe('/')
  1815 |     expect($('#router-as-path').text()).toBe('/')

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1812:53)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should load getStaticProps page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  1840 |     const $ = cheerio.load(html)
  1841 | 
> 1842 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1843 |       locale: 'en-US',
  1844 |       locales,
  1845 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1842:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should load getStaticProps fallback prerender page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "first",
    },

  1857 |     const $ = cheerio.load(html)
  1858 | 
> 1859 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1860 |       locale: 'en-US',
  1861 |       locales,
  1862 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1859:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should load getStaticProps fallback non-prerender page correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "another",
    },

  1881 |     await browser.waitForElementByCss('#props')
  1882 | 
> 1883 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  1884 |       locale: 'en',
  1885 |       locales,
  1886 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1883:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should load getServerSideProps page correctly SSR (default locale no prefix)

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  1906 |     const $ = cheerio.load(html)
  1907 | 
> 1908 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  1909 |       locale: 'en-US',
  1910 |       locales,
  1911 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1908:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should navigate client side for default locale with no prefix

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  1925 |       expect(
  1926 |         JSON.parse(await browser.elementByCss('#router-locales').text())
> 1927 |       ).toEqual(locales)
       |         ^
  1928 |       expect(
  1929 |         JSON.parse(await browser.elementByCss('#router-query').text())
  1930 |       ).toEqual({})

  at checkIndexValues (integration/i18n-support/test/shared.js:1927:9)
      at runMicrotasks (<anonymous>)
  at Object.<anonymous> (integration/i18n-support/test/shared.js:1938:5)

● i18n Support basePath › serverless mode › should load getStaticProps fallback non-prerender page another locale correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "another",
    },

  2005 |     await browser.waitForElementByCss('#props')
  2006 | 
> 2007 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  2008 |       locale: 'nl-NL',
  2009 |       locales,
  2010 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2007:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should load getStaticProps non-fallback correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "first",
    },

  2032 |     await browser.waitForElementByCss('#props')
  2033 | 
> 2034 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  2035 |       locale: 'en-US',
  2036 |       locales,
  2037 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2034:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should load getStaticProps non-fallback correctly another locale

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "second",
    },

  2062 |     await browser.waitForElementByCss('#props')
  2063 | 
> 2064 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  2065 |       locale: 'nl-NL',
  2066 |       locales,
  2067 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2064:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should load getStaticProps non-fallback correctly another locale via cookie

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "second",
    },

  2097 |     const $ = cheerio.load(html)
  2098 | 
> 2099 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2100 |       locale: 'nl-NL',
  2101 |       locales,
  2102 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2099:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should load getServerSideProps page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,10 +6,8 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
  }

  2117 |     const $ = cheerio.load(html)
  2118 | 
> 2119 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2120 |       locale: 'en-US',
  2121 |       locales,
  2122 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2119:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should load dynamic getServerSideProps page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -6,12 +6,10 @@
      "nl-NL",
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
-     "zh-Hant-TW",
-     "it",
      "en",
    ],
    "params": Object {
      "slug": "first",
    },

  2148 |     const $ = cheerio.load(html)
  2149 | 
> 2150 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2151 |       locale: 'en-US',
  2152 |       locales,
  2153 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2150:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should navigate to another page and back correctly with locale

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  2200 |     expect(
  2201 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 2202 |     ).toEqual(locales)
       |       ^
  2203 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
  2204 |       locale: 'en',
  2205 |       locales,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2202:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › serverless mode › should navigate to getStaticProps page and back correctly with locale

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  2229 |     expect(
  2230 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 2231 |     ).toEqual(locales)
       |       ^
  2232 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
  2233 |       locale: 'en',
  2234 |       locales,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2231:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › with localeDetection disabled › should not detect locale from accept-language

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  250 |       expect($('html').attr('lang')).toBe('en-US')
  251 |       expect($('#router-locale').text()).toBe('en-US')
> 252 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
      |                                                       ^
  253 |       expect($('#router-pathname').text()).toBe('/')
  254 |       expect($('#router-as-path').text()).toBe('/')
  255 |     })

  at Object.<anonymous> (integration/i18n-support-base-path/test/index.test.js:252:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › with localeDetection disabled › should set locale from detected path

expect(received).toEqual(expected) // deep equality

- Expected  - 2
+ Received  + 0

@@ -3,9 +3,7 @@
    "nl-NL",
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
-   "zh-Hant-TW",
-   "it",
    "en",
  ]

  273 |         expect($('html').attr('lang')).toBe(locale)
  274 |         expect($('#router-locale').text()).toBe(locale)
> 275 |         expect(JSON.parse($('#router-locales').text())).toEqual(locales)
      |                                                         ^
  276 |         expect($('#router-pathname').text()).toBe('/')
  277 |         expect($('#router-as-path').text()).toBe('/')
  278 |       }

  at Object.<anonymous> (integration/i18n-support-base-path/test/index.test.js:275:57)
      at runMicrotasks (<anonymous>)

@ijjk
Copy link
Member

ijjk commented Nov 26, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary longlho/next.js locale Change
buildDuration 10.8s 10.6s -210ms
nodeModulesSize 85 MB 85.5 MB ⚠️ +535 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary longlho/next.js locale Change
/ failed reqs 0 0
/ total time (seconds) 2.366 2.378 ⚠️ +0.01
/ avg req/sec 1056.61 1051.38 ⚠️ -5.23
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.384 1.4 ⚠️ +0.02
/error-in-render avg req/sec 1806.23 1786.06 ⚠️ -20.17
Client Bundles (main, webpack, commons)
vercel/next.js canary longlho/next.js locale Change
677f882d2ed8..8b6e.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-90b3d5a..55ad.js gzip 6.54 kB 6.54 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary longlho/next.js locale Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary longlho/next.js locale Change
_app-7231d4b..5856.js gzip 1.28 kB 1.28 kB
_error-fca3d..2eb1.js gzip 3.44 kB 3.44 kB
hooks-d4591d..e7c2.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-db223d9..dbd7.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.01 kB
Client Build Manifests
vercel/next.js canary longlho/next.js locale Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Rendered Page Sizes
vercel/next.js canary longlho/next.js locale Change
index.html gzip 614 B 614 B
link.html gzip 621 B 621 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary longlho/next.js locale Change
buildDuration 13.3s 12.6s -632ms
nodeModulesSize 85 MB 85.5 MB ⚠️ +535 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary longlho/next.js locale Change
677f882d2ed8..8b6e.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-90b3d5a..55ad.js gzip 6.54 kB 6.54 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary longlho/next.js locale Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary longlho/next.js locale Change
_app-7231d4b..5856.js gzip 1.28 kB 1.28 kB
_error-fca3d..2eb1.js gzip 3.44 kB 3.44 kB
hooks-d4591d..e7c2.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-db223d9..dbd7.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.01 kB
Client Build Manifests
vercel/next.js canary longlho/next.js locale Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Serverless bundles
vercel/next.js canary longlho/next.js locale Change
_error.js 996 kB 996 kB
404.html 2.67 kB 2.67 kB
hooks.html 1.92 kB 1.92 kB
index.js 996 kB 996 kB
link.js 1.05 MB 1.05 MB
routerDirect.js 1.04 MB 1.04 MB
withRouter.js 1.04 MB 1.04 MB
Overall change 5.13 MB 5.13 MB
Commit: 1791fd1

@ijjk
Copy link
Member

ijjk commented Nov 26, 2020

Failing test suites

Commit: 1791fd1

test/integration/i18n-support/test/index.test.js

  • i18n Support > production mode > should output correct prerender-manifest
  • i18n Support > serverless mode > should output correct prerender-manifest
Expand output

● i18n Support › production mode › should output correct prerender-manifest

expect(received).toEqual(expected) // deep equality

- Expected  -  0
+ Received  + 10

@@ -77,10 +77,15 @@
    "/gsp": Object {
      "dataRoute": "/_next/data/OUfTdfnf31lWwrtirC6c8/gsp.json",
      "initialRevalidateSeconds": false,
      "srcRoute": null,
    },
+   "/it/gsp/fallback/always": Object {
+     "dataRoute": "/_next/data/OUfTdfnf31lWwrtirC6c8/it/gsp/fallback/always.json",
+     "initialRevalidateSeconds": false,
+     "srcRoute": "/gsp/fallback/[slug]",
+   },
    "/nl-BE/gsp/fallback/always": Object {
      "dataRoute": "/_next/data/OUfTdfnf31lWwrtirC6c8/nl-BE/gsp/fallback/always.json",
      "initialRevalidateSeconds": false,
      "srcRoute": "/gsp/fallback/[slug]",
    },
@@ -101,7 +106,12 @@
    },
    "/not-found": Object {
      "dataRoute": "/_next/data/OUfTdfnf31lWwrtirC6c8/not-found.json",
      "initialRevalidateSeconds": false,
      "srcRoute": null,
+   },
+   "/zh-Hant-TW/gsp/fallback/always": Object {
+     "dataRoute": "/_next/data/OUfTdfnf31lWwrtirC6c8/zh-Hant-TW/gsp/fallback/always.json",
+     "initialRevalidateSeconds": false,
+     "srcRoute": "/gsp/fallback/[slug]",
    },
  }

  209 |       }
  210 | 
> 211 |       expect(prerenderManifest.routes).toEqual({
      |                                        ^
  212 |         '/': {
  213 |           dataRoute: `/_next/data/${ctx.buildId}/index.json`,
  214 |           initialRevalidateSeconds: false,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:211:40)

● i18n Support › serverless mode › should output correct prerender-manifest

expect(received).toEqual(expected) // deep equality

- Expected  -  0
+ Received  + 10

@@ -77,10 +77,15 @@
    "/gsp": Object {
      "dataRoute": "/_next/data/lRKKEwtIi_kF8b1K46jlV/gsp.json",
      "initialRevalidateSeconds": false,
      "srcRoute": null,
    },
+   "/it/gsp/fallback/always": Object {
+     "dataRoute": "/_next/data/lRKKEwtIi_kF8b1K46jlV/it/gsp/fallback/always.json",
+     "initialRevalidateSeconds": false,
+     "srcRoute": "/gsp/fallback/[slug]",
+   },
    "/nl-BE/gsp/fallback/always": Object {
      "dataRoute": "/_next/data/lRKKEwtIi_kF8b1K46jlV/nl-BE/gsp/fallback/always.json",
      "initialRevalidateSeconds": false,
      "srcRoute": "/gsp/fallback/[slug]",
    },
@@ -101,7 +106,12 @@
    },
    "/not-found": Object {
      "dataRoute": "/_next/data/lRKKEwtIi_kF8b1K46jlV/not-found.json",
      "initialRevalidateSeconds": false,
      "srcRoute": null,
+   },
+   "/zh-Hant-TW/gsp/fallback/always": Object {
+     "dataRoute": "/_next/data/lRKKEwtIi_kF8b1K46jlV/zh-Hant-TW/gsp/fallback/always.json",
+     "initialRevalidateSeconds": false,
+     "srcRoute": "/gsp/fallback/[slug]",
    },
  }

  209 |       }
  210 | 
> 211 |       expect(prerenderManifest.routes).toEqual({
      |                                        ^
  212 |         '/': {
  213 |           dataRoute: `/_next/data/${ctx.buildId}/index.json`,
  214 |           initialRevalidateSeconds: false,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:211:40)

test/integration/i18n-support-base-path/test/index.test.js

  • i18n Support basePath > production mode > should output correct prerender-manifest
  • i18n Support basePath > serverless mode > should output correct prerender-manifest
Expand output

● i18n Support basePath › production mode › should output correct prerender-manifest

expect(received).toEqual(expected) // deep equality

- Expected  -  0
+ Received  + 10

@@ -77,10 +77,15 @@
    "/gsp": Object {
      "dataRoute": "/_next/data/NFYIFYt5vtNkkzHP_oKqK/gsp.json",
      "initialRevalidateSeconds": false,
      "srcRoute": null,
    },
+   "/it/gsp/fallback/always": Object {
+     "dataRoute": "/_next/data/NFYIFYt5vtNkkzHP_oKqK/it/gsp/fallback/always.json",
+     "initialRevalidateSeconds": false,
+     "srcRoute": "/gsp/fallback/[slug]",
+   },
    "/nl-BE/gsp/fallback/always": Object {
      "dataRoute": "/_next/data/NFYIFYt5vtNkkzHP_oKqK/nl-BE/gsp/fallback/always.json",
      "initialRevalidateSeconds": false,
      "srcRoute": "/gsp/fallback/[slug]",
    },
@@ -101,7 +106,12 @@
    },
    "/not-found": Object {
      "dataRoute": "/_next/data/NFYIFYt5vtNkkzHP_oKqK/not-found.json",
      "initialRevalidateSeconds": false,
      "srcRoute": null,
+   },
+   "/zh-Hant-TW/gsp/fallback/always": Object {
+     "dataRoute": "/_next/data/NFYIFYt5vtNkkzHP_oKqK/zh-Hant-TW/gsp/fallback/always.json",
+     "initialRevalidateSeconds": false,
+     "srcRoute": "/gsp/fallback/[slug]",
    },
  }

  209 |       }
  210 | 
> 211 |       expect(prerenderManifest.routes).toEqual({
      |                                        ^
  212 |         '/': {
  213 |           dataRoute: `/_next/data/${ctx.buildId}/index.json`,
  214 |           initialRevalidateSeconds: false,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:211:40)

● i18n Support basePath › serverless mode › should output correct prerender-manifest

expect(received).toEqual(expected) // deep equality

- Expected  -  0
+ Received  + 10

@@ -77,10 +77,15 @@
    "/gsp": Object {
      "dataRoute": "/_next/data/Zvcf8JQRlRSHdv6Pkxf3n/gsp.json",
      "initialRevalidateSeconds": false,
      "srcRoute": null,
    },
+   "/it/gsp/fallback/always": Object {
+     "dataRoute": "/_next/data/Zvcf8JQRlRSHdv6Pkxf3n/it/gsp/fallback/always.json",
+     "initialRevalidateSeconds": false,
+     "srcRoute": "/gsp/fallback/[slug]",
+   },
    "/nl-BE/gsp/fallback/always": Object {
      "dataRoute": "/_next/data/Zvcf8JQRlRSHdv6Pkxf3n/nl-BE/gsp/fallback/always.json",
      "initialRevalidateSeconds": false,
      "srcRoute": "/gsp/fallback/[slug]",
    },
@@ -101,7 +106,12 @@
    },
    "/not-found": Object {
      "dataRoute": "/_next/data/Zvcf8JQRlRSHdv6Pkxf3n/not-found.json",
      "initialRevalidateSeconds": false,
      "srcRoute": null,
+   },
+   "/zh-Hant-TW/gsp/fallback/always": Object {
+     "dataRoute": "/_next/data/Zvcf8JQRlRSHdv6Pkxf3n/zh-Hant-TW/gsp/fallback/always.json",
+     "initialRevalidateSeconds": false,
+     "srcRoute": "/gsp/fallback/[slug]",
    },
  }

  209 |       }
  210 | 
> 211 |       expect(prerenderManifest.routes).toEqual({
      |                                        ^
  212 |         '/': {
  213 |           dataRoute: `/_next/data/${ctx.buildId}/index.json`,
  214 |           initialRevalidateSeconds: false,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:211:40)

@vercel vercel bot temporarily deployed to Preview November 30, 2020 01:40 Inactive
@vercel vercel bot temporarily deployed to Preview November 30, 2020 01:46 Inactive
@ijjk
Copy link
Member

ijjk commented Nov 30, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary longlho/next.js locale Change
buildDuration 9.2s 9.3s ⚠️ +53ms
nodeModulesSize 85 MB 85.5 MB ⚠️ +535 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary longlho/next.js locale Change
/ failed reqs 0 0
/ total time (seconds) 2.179 2.194 ⚠️ +0.02
/ avg req/sec 1147.14 1139.33 ⚠️ -7.81
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.358 1.394 ⚠️ +0.04
/error-in-render avg req/sec 1841.16 1793.2 ⚠️ -47.96
Client Bundles (main, webpack, commons)
vercel/next.js canary longlho/next.js locale Change
677f882d2ed8..8b6e.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-90b3d5a..55ad.js gzip 6.54 kB 6.54 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary longlho/next.js locale Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary longlho/next.js locale Change
_app-7231d4b..5856.js gzip 1.28 kB 1.28 kB
_error-fca3d..2eb1.js gzip 3.44 kB 3.44 kB
hooks-d4591d..e7c2.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-db223d9..dbd7.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.01 kB
Client Build Manifests
vercel/next.js canary longlho/next.js locale Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Rendered Page Sizes
vercel/next.js canary longlho/next.js locale Change
index.html gzip 614 B 614 B
link.html gzip 621 B 621 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary longlho/next.js locale Change
buildDuration 10.6s 10.9s ⚠️ +300ms
nodeModulesSize 85 MB 85.5 MB ⚠️ +535 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary longlho/next.js locale Change
677f882d2ed8..8b6e.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-90b3d5a..55ad.js gzip 6.54 kB 6.54 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary longlho/next.js locale Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary longlho/next.js locale Change
_app-7231d4b..5856.js gzip 1.28 kB 1.28 kB
_error-fca3d..2eb1.js gzip 3.44 kB 3.44 kB
hooks-d4591d..e7c2.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-db223d9..dbd7.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.01 kB
Client Build Manifests
vercel/next.js canary longlho/next.js locale Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Serverless bundles
vercel/next.js canary longlho/next.js locale Change
_error.js 996 kB 996 kB
404.html 2.67 kB 2.67 kB
hooks.html 1.92 kB 1.92 kB
index.js 996 kB 996 kB
link.js 1.05 MB 1.05 MB
routerDirect.js 1.04 MB 1.04 MB
withRouter.js 1.04 MB 1.04 MB
Overall change 5.13 MB 5.13 MB
Commit: d3b435b

@ijjk
Copy link
Member

ijjk commented Nov 30, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary longlho/next.js locale Change
buildDuration 9.2s 8.8s -432ms
nodeModulesSize 85 MB 85.5 MB ⚠️ +535 kB
Page Load Tests Overall increase ✓
vercel/next.js canary longlho/next.js locale Change
/ failed reqs 0 0
/ total time (seconds) 2.043 2.026 -0.02
/ avg req/sec 1223.98 1233.66 +9.68
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.176 1.149 -0.03
/error-in-render avg req/sec 2126.4 2176.39 +49.99
Client Bundles (main, webpack, commons)
vercel/next.js canary longlho/next.js locale Change
677f882d2ed8..8b6e.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-90b3d5a..55ad.js gzip 6.54 kB 6.54 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary longlho/next.js locale Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary longlho/next.js locale Change
_app-7231d4b..5856.js gzip 1.28 kB 1.28 kB
_error-fca3d..2eb1.js gzip 3.44 kB 3.44 kB
hooks-d4591d..e7c2.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-db223d9..dbd7.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.01 kB
Client Build Manifests
vercel/next.js canary longlho/next.js locale Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Rendered Page Sizes
vercel/next.js canary longlho/next.js locale Change
index.html gzip 614 B 614 B
link.html gzip 621 B 621 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary longlho/next.js locale Change
buildDuration 10.7s 10.6s -109ms
nodeModulesSize 85 MB 85.5 MB ⚠️ +535 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary longlho/next.js locale Change
677f882d2ed8..8b6e.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-90b3d5a..55ad.js gzip 6.54 kB 6.54 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary longlho/next.js locale Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary longlho/next.js locale Change
_app-7231d4b..5856.js gzip 1.28 kB 1.28 kB
_error-fca3d..2eb1.js gzip 3.44 kB 3.44 kB
hooks-d4591d..e7c2.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-db223d9..dbd7.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.01 kB
Client Build Manifests
vercel/next.js canary longlho/next.js locale Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Serverless bundles
vercel/next.js canary longlho/next.js locale Change
_error.js 996 kB 996 kB
404.html 2.67 kB 2.67 kB
hooks.html 1.92 kB 1.92 kB
index.js 996 kB 996 kB
link.js 1.05 MB 1.05 MB
routerDirect.js 1.04 MB 1.04 MB
withRouter.js 1.04 MB 1.04 MB
Overall change 5.13 MB 5.13 MB
Commit: 5f4f888

@longlho
Copy link
Contributor Author

longlho commented Nov 30, 2020

FYI this also requires either Node 12 with full ICU or Intl.Locale polyfill

@arguiot
Copy link

arguiot commented Dec 1, 2020

@longlho Go for the polyfill (with capability detection). Currently, NextJS targets Node 10.13.0 according to the package.json file.

@longlho
Copy link
Contributor Author

longlho commented Dec 1, 2020

@arguiot I'm deferring to the vercel team on this decision. Selective polyfill for Intl is non-trivial and potentially adds runtime complexity.

@arguiot
Copy link

arguiot commented Dec 1, 2020

[Edit] Forget what I said about Node 14, you were talking about Node 12, sorry!!

I agree with you on this point, but I don't think the Vercel team will agree to move to Node 14 just for this PR. Especially since Vercel doesn't support Node 14 yet (see screenshot).
Capture d’écran 2020-12-01 à 14 58 51

We need to solve this complexity problem (maybe by caching the should-polyfill result?).

@longlho
Copy link
Contributor Author

longlho commented Dec 1, 2020

Part of the issue is if you polyfill too many locales it'll OOM your Node process.

Edit: it seems to not be relevant in this case since Intl.Locale is a fixed polyfill that doesn't require locale data.

@arguiot
Copy link

arguiot commented Dec 1, 2020

Where exactly do you need Intl.Locale? Is it used in the ResolveLocale function?

Also, tell me if I'm wrong, but if we add the Intl.Locale polyfill the only complexity we add is related to the question "do we need to use the polyfill or not?". If the answer is computed once and cached then it won't impact the next-server performances.

For older versions, it's clear that the performance won't be as good. Let's see what the Vercel teams says but I don't think we have the choice unfortunately... I think that upgrading the minimum requirements is never a good idea.

@longlho
Copy link
Contributor Author

longlho commented Dec 1, 2020

Node 10 is about to be EOL in 5 months. It's been in maintenance LTS for a while. You typically don't run production on older Node unless you're in fintech.

@arguiot
Copy link

arguiot commented Dec 1, 2020

But it's kind of the same thing you reproached me with my locale resolution algorithm.

Here's the thing: there will be someone who will use Node 10 with NextJS. I agree that it would be easier to just ignore this case. But I'm not convinced it's the right thing to do.

The answer would have been different if we were 5 months from now, but as long as Node 10 is used and supported, even by a minority of Next users, I think we should continue backward compatibility.

Finally, even if Node 10 is discontinued, we must not forget that there is Node 11 between Node 10 and 12, which extends the list of users concerned.

@longlho
Copy link
Contributor Author

longlho commented Dec 1, 2020

Node 11 is not a LTS version. Anw vercel team should make a decision on this.

@arguiot
Copy link

arguiot commented Dec 16, 2020

@Timer @lfades @timneutkens @ijjk Any updates on this decision? The TLDR of the discussion is that longlho needs to use a feature only available on Node 12 (Intl.Locale) but NextJS targets Node 10. The options are either to bump NextJS' target or to use a polyfill (but could result in worst performances)

@vercel vercel bot temporarily deployed to Preview December 16, 2020 20:44 Inactive
@longlho
Copy link
Contributor Author

longlho commented Dec 16, 2020

I just realized that Intl.Locale polyfill doesn't have locale-data so no need to selectively polyfill per locale.

@ijjk
Copy link
Member

ijjk commented Dec 16, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary longlho/next.js locale Change
buildDuration 8.8s 9s ⚠️ +246ms
nodeModulesSize 82.4 MB 83 MB ⚠️ +535 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary longlho/next.js locale Change
/ failed reqs 0 0
/ total time (seconds) 2.079 2.088 ⚠️ +0.01
/ avg req/sec 1202.31 1197.14 ⚠️ -5.17
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.101 1.12 ⚠️ +0.02
/error-in-render avg req/sec 2270.86 2231.37 ⚠️ -39.49
Client Bundles (main, webpack, commons)
vercel/next.js canary longlho/next.js locale Change
677f882d2ed8..0679.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-008bb91..b823.js gzip 6.56 kB 6.56 kB
webpack-95c2..e870.js gzip 751 B 751 B
Overall change 59.1 kB 59.1 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary longlho/next.js locale Change
polyfills-d3..23f6.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary longlho/next.js locale Change
_app-0d19cb6..5497.js gzip 1.28 kB 1.28 kB
_error-2cf0e..a0a0.js gzip 3.69 kB 3.69 kB
hooks-42456f..0c06.js gzip 887 B 887 B
index-8081ce..e44f.js gzip 227 B 227 B
link-0ab9f83..fa00.js gzip 1.61 kB 1.61 kB
routerDirect..c3d8.js gzip 303 B 303 B
withRouter-0..a68e.js gzip 302 B 302 B
Overall change 8.31 kB 8.31 kB
Client Build Manifests
vercel/next.js canary longlho/next.js locale Change
_buildManifest.js gzip 323 B 323 B
Overall change 323 B 323 B
Rendered Page Sizes
vercel/next.js canary longlho/next.js locale Change
index.html gzip 615 B 615 B
link.html gzip 621 B 621 B
withRouter.html gzip 609 B 609 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary longlho/next.js locale Change
buildDuration 10.4s 10.3s -77ms
nodeModulesSize 82.4 MB 83 MB ⚠️ +535 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary longlho/next.js locale Change
677f882d2ed8..0679.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-008bb91..b823.js gzip 6.56 kB 6.56 kB
webpack-95c2..e870.js gzip 751 B 751 B
Overall change 59.1 kB 59.1 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary longlho/next.js locale Change
polyfills-d3..23f6.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary longlho/next.js locale Change
_app-0d19cb6..5497.js gzip 1.28 kB 1.28 kB
_error-2cf0e..a0a0.js gzip 3.69 kB 3.69 kB
hooks-42456f..0c06.js gzip 887 B 887 B
index-8081ce..e44f.js gzip 227 B 227 B
link-0ab9f83..fa00.js gzip 1.61 kB 1.61 kB
routerDirect..c3d8.js gzip 303 B 303 B
withRouter-0..a68e.js gzip 302 B 302 B
Overall change 8.31 kB 8.31 kB
Client Build Manifests
vercel/next.js canary longlho/next.js locale Change
_buildManifest.js gzip 323 B 323 B
Overall change 323 B 323 B
Serverless bundles
vercel/next.js canary longlho/next.js locale Change
_error.js 1 MB 1 MB
404.html 2.67 kB 2.67 kB
hooks.html 1.92 kB 1.92 kB
index.js 1 MB 1 MB
link.js 1.06 MB 1.06 MB
routerDirect.js 1.05 MB 1.05 MB
withRouter.js 1.05 MB 1.05 MB
Overall change 5.16 MB 5.16 MB
Commit: 90dca17

giriloou
giriloou previously approved these changes Jan 4, 2021
@ijjk
Copy link
Member

ijjk commented Feb 23, 2021

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary longlho/next.js locale Change
buildDuration 11s 11.1s ⚠️ +100ms
nodeModulesSize 42.6 MB 43.2 MB ⚠️ +550 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary longlho/next.js locale Change
/ failed reqs 0 0
/ total time (seconds) 2.249 2.358 ⚠️ +0.11
/ avg req/sec 1111.68 1060.44 ⚠️ -51.24
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.588 1.652 ⚠️ +0.06
/error-in-render avg req/sec 1574.64 1513.25 ⚠️ -61.39
Client Bundles (main, webpack, commons)
vercel/next.js canary longlho/next.js locale Change
677f882d2ed8..854c.js gzip 13.2 kB 13.2 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 6.65 kB 6.65 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 59.6 kB 59.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary longlho/next.js locale Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages
vercel/next.js canary longlho/next.js locale Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
amp-e3e9bc99..932c.js gzip 536 B 536 B
hooks-5023ef..3670.js gzip 888 B 888 B
index-3a2b03..c677.js gzip 227 B 227 B
link-177412b..043e.js gzip 1.67 kB 1.67 kB
routerDirect..1a66.js gzip 303 B 303 B
withRouter-9..1b7d.js gzip 302 B 302 B
Overall change 8.66 kB 8.66 kB
Client Build Manifests
vercel/next.js canary longlho/next.js locale Change
_buildManifest.js gzip 347 B 347 B
Overall change 347 B 347 B
Rendered Page Sizes
vercel/next.js canary longlho/next.js locale Change
index.html gzip 613 B 613 B
link.html gzip 620 B 620 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary longlho/next.js locale Change
buildDuration 12.9s 12.9s ⚠️ +6ms
nodeModulesSize 42.6 MB 43.2 MB ⚠️ +550 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary longlho/next.js locale Change
677f882d2ed8..854c.js gzip 13.2 kB 13.2 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 6.65 kB 6.65 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 59.6 kB 59.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary longlho/next.js locale Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages
vercel/next.js canary longlho/next.js locale Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
amp-e3e9bc99..932c.js gzip 536 B 536 B
hooks-5023ef..3670.js gzip 888 B 888 B
index-3a2b03..c677.js gzip 227 B 227 B
link-177412b..043e.js gzip 1.67 kB 1.67 kB
routerDirect..1a66.js gzip 303 B 303 B
withRouter-9..1b7d.js gzip 302 B 302 B
Overall change 8.66 kB 8.66 kB
Client Build Manifests
vercel/next.js canary longlho/next.js locale Change
_buildManifest.js gzip 347 B 347 B
Overall change 347 B 347 B
Serverless bundles
vercel/next.js canary longlho/next.js locale Change
_error.js 1.01 MB 1.01 MB
404.html 2.67 kB 2.67 kB
500.html 2.65 kB 2.65 kB
amp.amp.html 10.4 kB 10.4 kB
amp.html 1.86 kB 1.86 kB
hooks.html 1.92 kB 1.92 kB
index.js 1.01 MB 1.01 MB
link.js 1.06 MB 1.06 MB
routerDirect.js 1.06 MB 1.06 MB
withRouter.js 1.06 MB 1.06 MB
Overall change 5.21 MB 5.21 MB

Webpack 5 Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary longlho/next.js locale Change
buildDuration 12.8s 13.1s ⚠️ +279ms
nodeModulesSize 42.6 MB 43.2 MB ⚠️ +550 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary longlho/next.js locale Change
/ failed reqs 0 0
/ total time (seconds) 2.1 2.12 ⚠️ +0.02
/ avg req/sec 1190.4 1179.38 ⚠️ -11.02
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.453 1.462 ⚠️ +0.01
/error-in-render avg req/sec 1721.12 1709.96 ⚠️ -11.16
Client Bundles (main, webpack, commons)
vercel/next.js canary longlho/next.js locale Change
597-dc8125e2..ef24.js gzip 13.1 kB 13.1 kB
framework.HASH.js gzip 39.3 kB 39.3 kB
main-HASH.js gzip 6.59 kB 6.59 kB
webpack-HASH.js gzip 954 B 954 B
Overall change 60 kB 60 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary longlho/next.js locale Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB
Overall change 31.1 kB 31.1 kB
Client Pages
vercel/next.js canary longlho/next.js locale Change
_app-aedc815..1421.js gzip 1.26 kB 1.26 kB
_error-71ec2..1a96.js gzip 3.38 kB 3.38 kB
amp-33a09cb0..6745.js gzip 536 B 536 B
hooks-4e968a..f870.js gzip 902 B 902 B
index-5c6845..f75c.js gzip 230 B 230 B
link-99f0c6c..b84a.js gzip 1.65 kB 1.65 kB
routerDirect..bb56.js gzip 306 B 306 B
withRouter-7..2133.js gzip 302 B 302 B
Overall change 8.57 kB 8.57 kB
Client Build Manifests
vercel/next.js canary longlho/next.js locale Change
_buildManifest.js gzip 326 B 326 B
Overall change 326 B 326 B
Rendered Page Sizes
vercel/next.js canary longlho/next.js locale Change
index.html gzip 585 B 585 B
link.html gzip 591 B 591 B
withRouter.html gzip 579 B 579 B
Overall change 1.75 kB 1.75 kB

Diffs

Diff for index.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/",
         "query": {},
-        "buildId": "1Ejceog8AxXoKLIU9_h-C",
+        "buildId": "1VeOG9S_aUoRvSRzNwFCi",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/1Ejceog8AxXoKLIU9_h-C/_buildManifest.js"
+      src="/_next/static/1VeOG9S_aUoRvSRzNwFCi/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/1Ejceog8AxXoKLIU9_h-C/_ssgManifest.js"
+      src="/_next/static/1VeOG9S_aUoRvSRzNwFCi/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for link.html
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/link",
         "query": {},
-        "buildId": "1Ejceog8AxXoKLIU9_h-C",
+        "buildId": "1VeOG9S_aUoRvSRzNwFCi",
         "isFallback": false,
         "gip": true
       }
@@ -82,11 +82,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/1Ejceog8AxXoKLIU9_h-C/_buildManifest.js"
+      src="/_next/static/1VeOG9S_aUoRvSRzNwFCi/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/1Ejceog8AxXoKLIU9_h-C/_ssgManifest.js"
+      src="/_next/static/1VeOG9S_aUoRvSRzNwFCi/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for withRouter.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/withRouter",
         "query": {},
-        "buildId": "1Ejceog8AxXoKLIU9_h-C",
+        "buildId": "1VeOG9S_aUoRvSRzNwFCi",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/1Ejceog8AxXoKLIU9_h-C/_buildManifest.js"
+      src="/_next/static/1VeOG9S_aUoRvSRzNwFCi/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/1Ejceog8AxXoKLIU9_h-C/_ssgManifest.js"
+      src="/_next/static/1VeOG9S_aUoRvSRzNwFCi/_ssgManifest.js"
       async=""
     ></script>
   </body>
Commit: 1301b55

@ijjk
Copy link
Member

ijjk commented Feb 23, 2021

Failing test suites

Commit: 1301b55

test/integration/i18n-support-base-path/test/index.test.js

  • i18n Support basePath > dev mode > should navigate to page with same name as development buildId
  • i18n Support basePath > dev mode > should navigate through history with query correctly
  • i18n Support basePath > dev mode > should have correct values for non-prefixed path
  • i18n Support basePath > dev mode > should not have hydration mis-match from hash
  • i18n Support basePath > dev mode > should navigate to auto-export dynamic page
  • i18n Support basePath > dev mode > should navigate with locale prop correctly
  • i18n Support basePath > dev mode > should navigate with locale prop correctly GSP
  • i18n Support basePath > dev mode > should navigate with locale false correctly
  • i18n Support basePath > dev mode > should navigate with locale false correctly GSP
  • i18n Support basePath > dev mode > should update asPath on the client correctly
  • i18n Support basePath > dev mode > should use correct default locale for locale domains
  • i18n Support basePath > dev mode > should not redirect to accept-lang preferred locale with locale cookie
  • i18n Support basePath > dev mode > should provide defaultLocale correctly for locale domain
  • i18n Support basePath > dev mode > should generate AMP pages with all locales
  • i18n Support basePath > dev mode > should work with AMP first page with all locales
  • i18n Support basePath > dev mode > should generate auto-export page with all locales
  • i18n Support basePath > dev mode > should generate non-dynamic GSP page with all locales
  • i18n Support basePath > dev mode > should transition on client properly for page that starts with locale
  • i18n Support basePath > dev mode > should load getStaticProps page correctly SSR (default locale no prefix)
  • i18n Support basePath > dev mode > should load getStaticProps fallback prerender page correctly SSR (default locale no prefix)
  • i18n Support basePath > dev mode > should load getStaticProps fallback non-prerender page correctly (default locale no prefix
  • i18n Support basePath > dev mode > should use default locale for / without accept-language
  • i18n Support basePath > dev mode > should load getStaticProps page correctly SSR
  • i18n Support basePath > dev mode > should load getStaticProps fallback prerender page correctly SSR
  • i18n Support basePath > dev mode > should load getStaticProps fallback non-prerender page correctly
  • i18n Support basePath > dev mode > should load getServerSideProps page correctly SSR (default locale no prefix)
  • i18n Support basePath > dev mode > should navigate client side for default locale with no prefix
  • i18n Support basePath > dev mode > should load getStaticProps fallback non-prerender page another locale correctly
  • i18n Support basePath > dev mode > should load getStaticProps non-fallback correctly
  • i18n Support basePath > dev mode > should load getStaticProps non-fallback correctly another locale
  • i18n Support basePath > dev mode > should load getStaticProps non-fallback correctly another locale via cookie
  • i18n Support basePath > dev mode > should load getServerSideProps page correctly SSR
  • i18n Support basePath > dev mode > should load dynamic getServerSideProps page correctly SSR
  • i18n Support basePath > dev mode > should navigate to another page and back correctly with locale
  • i18n Support basePath > dev mode > should navigate to getStaticProps page and back correctly with locale
  • i18n Support basePath > production mode > should navigate to page with same name as development buildId
  • i18n Support basePath > production mode > should render the correct href with locale domains but not on a locale domain
  • i18n Support basePath > production mode > should navigate through history with query correctly
  • i18n Support basePath > production mode > should not contain backslashes in pages-manifest
  • i18n Support basePath > production mode > should resolve href correctly when dynamic route matches locale prefixed
  • i18n Support basePath > production mode > should use default locale when no locale is in href with locale false
  • i18n Support basePath > production mode > should preload all locales data correctly
  • i18n Support basePath > production mode > should have correct values for non-prefixed path
  • i18n Support basePath > production mode > should not have hydration mis-match from hash
  • i18n Support basePath > production mode > should add i18n config to routes-manifest
  • i18n Support basePath > production mode > should output correct prerender-manifest
  • i18n Support basePath > production mode > should resolve auto-export dynamic route correctly
  • i18n Support basePath > production mode > should navigate to auto-export dynamic page
  • i18n Support basePath > production mode > should apply trailingSlash redirect correctly
  • i18n Support basePath > production mode > should apply redirects correctly
  • i18n Support basePath > production mode > should apply headers correctly
  • i18n Support basePath > production mode > should visit API route directly correctly
  • i18n Support basePath > production mode > should visit dynamic API route directly correctly
  • i18n Support basePath > production mode > should rewrite to API route correctly
  • i18n Support basePath > production mode > should apply rewrites correctly
  • i18n Support basePath > production mode > should navigate with locale prop correctly
  • i18n Support basePath > production mode > should navigate with locale prop correctly GSP
  • i18n Support basePath > production mode > should navigate with locale false correctly
  • i18n Support basePath > production mode > should navigate with locale false correctly GSP
  • i18n Support basePath > production mode > should update asPath on the client correctly
  • i18n Support basePath > production mode > should handle fallback correctly after generating
  • i18n Support basePath > production mode > should use correct default locale for locale domains
  • i18n Support basePath > production mode > should not strip locale prefix for default locale with locale domains
  • i18n Support basePath > production mode > should not redirect to accept-lang preferred locale with locale cookie
  • i18n Support basePath > production mode > should redirect to correct locale domain
  • i18n Support basePath > production mode > should handle locales with domain
  • i18n Support basePath > production mode > should provide defaultLocale correctly for locale domain
  • i18n Support basePath > production mode > should generate AMP pages with all locales
  • i18n Support basePath > production mode > should work with AMP first page with all locales
  • i18n Support basePath > production mode > should generate fallbacks with all locales
  • i18n Support basePath > production mode > should generate auto-export page with all locales
  • i18n Support basePath > production mode > should generate non-dynamic GSP page with all locales
  • i18n Support basePath > production mode > should not output GSP pages that returned notFound
  • i18n Support basePath > production mode > should 404 for GSP pages that returned notFound
  • i18n Support basePath > production mode > should transition on client properly for page that starts with locale
  • i18n Support basePath > production mode > should 404 for GSP that returned notFound on client-transition
  • i18n Support basePath > production mode > should render 404 for fallback page that returned 404 on client transition
  • i18n Support basePath > production mode > should render 404 for fallback page that returned 404
  • i18n Support basePath > production mode > should render 404 for blocking fallback page that returned 404 on client transition
  • i18n Support basePath > production mode > should render 404 for blocking fallback page that returned 404
  • i18n Support basePath > production mode > should not remove locale prefix for default locale
  • i18n Support basePath > production mode > should load getStaticProps page correctly SSR (default locale no prefix)
  • i18n Support basePath > production mode > should load getStaticProps fallback prerender page correctly SSR (default locale no prefix)
  • i18n Support basePath > production mode > should load getStaticProps fallback non-prerender page correctly (default locale no prefix
  • i18n Support basePath > production mode > should redirect to locale prefixed route for /
  • i18n Support basePath > production mode > should use default locale for / without accept-language
  • i18n Support basePath > production mode > should load getStaticProps page correctly SSR
  • i18n Support basePath > production mode > should load getStaticProps fallback prerender page correctly SSR
  • i18n Support basePath > production mode > should load getStaticProps fallback non-prerender page correctly
  • i18n Support basePath > production mode > should load getServerSideProps page correctly SSR (default locale no prefix)
  • i18n Support basePath > production mode > should navigate client side for default locale with no prefix
  • i18n Support basePath > production mode > should load getStaticProps fallback non-prerender page another locale correctly
  • i18n Support basePath > production mode > should load getStaticProps non-fallback correctly
  • i18n Support basePath > production mode > should load getStaticProps non-fallback correctly another locale
  • i18n Support basePath > production mode > should load getStaticProps non-fallback correctly another locale via cookie
  • i18n Support basePath > production mode > should load getServerSideProps page correctly SSR
  • i18n Support basePath > production mode > should load dynamic getServerSideProps page correctly SSR
  • i18n Support basePath > production mode > should navigate to another page and back correctly with locale
  • i18n Support basePath > production mode > should navigate to getStaticProps page and back correctly with locale
  • i18n Support basePath > serverless mode > should have correct props for blocking notFound
  • i18n Support basePath > serverless mode > should resolve rewrites correctly
  • i18n Support basePath > serverless mode > should navigate to page with same name as development buildId
  • i18n Support basePath > serverless mode > should render the correct href with locale domains but not on a locale domain
  • i18n Support basePath > serverless mode > should navigate through history with query correctly
  • i18n Support basePath > serverless mode > should not contain backslashes in pages-manifest
  • i18n Support basePath > serverless mode > should resolve href correctly when dynamic route matches locale prefixed
  • i18n Support basePath > serverless mode > should use default locale when no locale is in href with locale false
  • i18n Support basePath > serverless mode > should preload all locales data correctly
  • i18n Support basePath > serverless mode > should have correct values for non-prefixed path
  • i18n Support basePath > serverless mode > should not have hydration mis-match from hash
  • i18n Support basePath > serverless mode > should add i18n config to routes-manifest
  • i18n Support basePath > serverless mode > should output correct prerender-manifest
  • i18n Support basePath > serverless mode > should resolve auto-export dynamic route correctly
  • i18n Support basePath > serverless mode > should navigate to auto-export dynamic page
  • i18n Support basePath > serverless mode > should apply trailingSlash redirect correctly
  • i18n Support basePath > serverless mode > should apply redirects correctly
  • i18n Support basePath > serverless mode > should apply headers correctly
  • i18n Support basePath > serverless mode > should visit API route directly correctly
  • i18n Support basePath > serverless mode > should visit dynamic API route directly correctly
  • i18n Support basePath > serverless mode > should rewrite to API route correctly
  • i18n Support basePath > serverless mode > should apply rewrites correctly
  • i18n Support basePath > serverless mode > should navigate with locale prop correctly
  • i18n Support basePath > serverless mode > should navigate with locale prop correctly GSP
  • i18n Support basePath > serverless mode > should navigate with locale false correctly
  • i18n Support basePath > serverless mode > should navigate with locale false correctly GSP
  • i18n Support basePath > serverless mode > should update asPath on the client correctly
  • i18n Support basePath > serverless mode > should handle fallback correctly after generating
  • i18n Support basePath > serverless mode > should use correct default locale for locale domains
  • i18n Support basePath > serverless mode > should not strip locale prefix for default locale with locale domains
  • i18n Support basePath > serverless mode > should not redirect to accept-lang preferred locale with locale cookie
  • i18n Support basePath > serverless mode > should redirect to correct locale domain
  • i18n Support basePath > serverless mode > should handle locales with domain
  • i18n Support basePath > serverless mode > should provide defaultLocale correctly for locale domain
  • i18n Support basePath > serverless mode > should generate AMP pages with all locales
  • i18n Support basePath > serverless mode > should work with AMP first page with all locales
  • i18n Support basePath > serverless mode > should generate fallbacks with all locales
  • i18n Support basePath > serverless mode > should generate auto-export page with all locales
  • i18n Support basePath > serverless mode > should generate non-dynamic GSP page with all locales
  • i18n Support basePath > serverless mode > should not output GSP pages that returned notFound
  • i18n Support basePath > serverless mode > should 404 for GSP pages that returned notFound
  • i18n Support basePath > serverless mode > should transition on client properly for page that starts with locale
  • i18n Support basePath > serverless mode > should 404 for GSP that returned notFound on client-transition
  • i18n Support basePath > serverless mode > should render 404 for fallback page that returned 404 on client transition
  • i18n Support basePath > serverless mode > should render 404 for fallback page that returned 404
  • i18n Support basePath > serverless mode > should render 404 for blocking fallback page that returned 404 on client transition
  • i18n Support basePath > serverless mode > should render 404 for blocking fallback page that returned 404
  • i18n Support basePath > serverless mode > should not remove locale prefix for default locale
  • i18n Support basePath > serverless mode > should load getStaticProps page correctly SSR (default locale no prefix)
  • i18n Support basePath > serverless mode > should load getStaticProps fallback prerender page correctly SSR (default locale no prefix)
  • i18n Support basePath > serverless mode > should load getStaticProps fallback non-prerender page correctly (default locale no prefix
  • i18n Support basePath > serverless mode > should redirect to locale prefixed route for /
  • i18n Support basePath > serverless mode > should use default locale for / without accept-language
  • i18n Support basePath > serverless mode > should load getStaticProps page correctly SSR
  • i18n Support basePath > serverless mode > should load getStaticProps fallback prerender page correctly SSR
  • i18n Support basePath > serverless mode > should load getStaticProps fallback non-prerender page correctly
  • i18n Support basePath > serverless mode > should load getServerSideProps page correctly SSR (default locale no prefix)
  • i18n Support basePath > serverless mode > should navigate client side for default locale with no prefix
  • i18n Support basePath > serverless mode > should load getStaticProps fallback non-prerender page another locale correctly
  • i18n Support basePath > serverless mode > should load getStaticProps non-fallback correctly
  • i18n Support basePath > serverless mode > should load getStaticProps non-fallback correctly another locale
  • i18n Support basePath > serverless mode > should load getStaticProps non-fallback correctly another locale via cookie
  • i18n Support basePath > serverless mode > should load getServerSideProps page correctly SSR
  • i18n Support basePath > serverless mode > should load dynamic getServerSideProps page correctly SSR
  • i18n Support basePath > serverless mode > should navigate to another page and back correctly with locale
  • i18n Support basePath > serverless mode > should navigate to getStaticProps page and back correctly with locale
  • i18n Support basePath > with localeDetection disabled > should have localeDetection in routes-manifest
  • i18n Support basePath > with localeDetection disabled > should not detect locale from accept-language
  • i18n Support basePath > with localeDetection disabled > should set locale from detected path
Expand output

● i18n Support basePath › dev mode › should navigate to page with same name as development buildId

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,14 +7,14 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
  }

  64 |       JSON.parse(await browser.elementByCss('#router-query').text())
  65 |     ).toEqual({})
> 66 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
     |                                                                     ^
  67 |       locales,
  68 |       locale: 'en-US',
  69 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:66:69)

● i18n Support basePath › dev mode › should navigate through history with query correctly

TIMED OUT: success

undefined

  384 | 
  385 |   if (hardError) {
> 386 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content)
      |           ^
  387 |   }
  388 |   return false
  389 | }

  at check (lib/next-test-utils.js:386:11)
  at Object.<anonymous> (integration/i18n-support/test/shared.js:213:5)

● i18n Support basePath › dev mode › should have correct values for non-prefixed path

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  376 |       expect($('#router-locale').text()).toBe('en-US')
  377 |       expect($('#router-default-locale').text()).toBe('en-US')
> 378 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
      |                                                       ^
  379 |       expect($('#router-pathname').text()).toBe(pathname)
  380 |       expect($('#router-as-path').text()).toBe(asPath)
  381 |     }

  at Object.<anonymous> (integration/i18n-support/test/shared.js:378:55)

● i18n Support basePath › dev mode › should not have hydration mis-match from hash

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  392 |     expect(
  393 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 394 |     ).toEqual(locales)
      |       ^
  395 |     expect(await browser.elementByCss('#router-pathname').text()).toBe('/')
  396 |     expect(await browser.elementByCss('#router-as-path').text()).toBe('/')
  397 |     expect(await browser.eval('window.caughtWarns')).toEqual([])

  at Object.<anonymous> (integration/i18n-support/test/shared.js:394:7)

● i18n Support basePath › dev mode › should navigate to auto-export dynamic page

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  889 |       expect(
  890 |         JSON.parse(await browser.elementByCss('#router-locales').text())
> 891 |       ).toEqual(locales)
      |         ^
  892 |       expect(
  893 |         JSON.parse(await browser.elementByCss('#router-query').text())
  894 |       ).toEqual({ slug: 'first' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:891:9)

● i18n Support basePath › dev mode › should navigate with locale prop correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  1194 |     expect(
  1195 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 1196 |     ).toEqual(locales)
       |       ^
  1197 |     expect(
  1198 |       JSON.parse(await browser.elementByCss('#router-query').text())
  1199 |     ).toEqual({ nextLocale: 'fr' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1196:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should navigate with locale prop correctly GSP

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  1286 |     expect(
  1287 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 1288 |     ).toEqual(locales)
       |       ^
  1289 |     expect(
  1290 |       JSON.parse(await browser.elementByCss('#router-query').text())
  1291 |     ).toEqual({ nextLocale: 'nl' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1288:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should navigate with locale false correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  1408 |     expect(
  1409 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 1410 |     ).toEqual(locales)
       |       ^
  1411 |     expect(
  1412 |       JSON.parse(await browser.elementByCss('#router-query').text())
  1413 |     ).toEqual({ nextLocale: 'fr' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1410:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should navigate with locale false correctly GSP

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  1504 |     expect(
  1505 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 1506 |     ).toEqual(locales)
       |       ^
  1507 |     expect(
  1508 |       JSON.parse(await browser.elementByCss('#router-query').text())
  1509 |     ).toEqual({ nextLocale: 'nl' })

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1506:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should update asPath on the client correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  1591 |       expect(
  1592 |         JSON.parse(await browser.elementByCss('#router-locales').text())
> 1593 |       ).toEqual(locales)
       |         ^
  1594 |       expect(await browser.elementByCss('#router-as-path').text()).toBe('/')
  1595 |       expect(await browser.elementByCss('#router-pathname').text()).toBe('/')
  1596 |     }

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1593:9)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should use correct default locale for locale domains

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  1644 |     expect($('#router-pathname').text()).toBe('/')
  1645 |     // expect(JSON.parse($('#router-locales').text())).toEqual(['fr','fr-BE'])
> 1646 |     expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                     ^
  1647 | 
  1648 |     const res2 = await fetchViaHTTP(
  1649 |       ctx.appPort,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1646:53)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should not redirect to accept-lang preferred locale with locale cookie

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  1744 | 
  1745 |     expect($('#router-locale').text()).toBe('en-US')
> 1746 |     expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                     ^
  1747 |     expect($('html').attr('lang')).toBe('en-US')
  1748 |     expect($('#router-pathname').text()).toBe('/')
  1749 |     expect($('#router-as-path').text()).toBe('/')

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1746:53)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should provide defaultLocale correctly for locale domain

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,15 +7,15 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
    "query": Object {},
  }

  1884 |       expect($('#router-locale').text()).toBe(locale)
  1885 |       expect($('#router-default-locale').text()).toBe(locale)
> 1886 |       expect(JSON.parse($('#props').text())).toEqual({
       |                                              ^
  1887 |         defaultLocale: locale,
  1888 |         locale,
  1889 |         locales,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1886:46)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should generate AMP pages with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  1905 |       expect($('#is-amp').text()).toBe('no')
  1906 |       expect($('#router-locale').text()).toBe(locale)
> 1907 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1908 |       expect($('#router-pathname').text()).toBe('/amp/amp-hybrid')
  1909 |       expect($('#router-as-path').text()).toBe('/amp/amp-hybrid')
  1910 |       expect(JSON.parse($('#router-query').text())).toEqual({})

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1907:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should work with AMP first page with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  1939 |       expect($('#is-amp').text()).toBe('yes')
  1940 |       expect($('#router-locale').text()).toBe(locale)
> 1941 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1942 |       expect($('#router-pathname').text()).toBe('/amp/amp-first')
  1943 |       expect($('#router-as-path').text()).toBe('/amp/amp-first')
  1944 |       expect(JSON.parse($('#router-query').text())).toEqual({})

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1941:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should generate auto-export page with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  1966 |       expect($('#router-as-path').text()).toBe('/')
  1967 |       expect($('#router-pathname').text()).toBe('/')
> 1968 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1969 | 
  1970 |       const html2 = await renderViaHTTP(
  1971 |         ctx.appPort,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1968:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should generate non-dynamic GSP page with all locales

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  1992 |       expect($('#router-as-path').text()).toBe('/gsp')
  1993 |       expect($('#router-pathname').text()).toBe('/gsp')
> 1994 |       expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                       ^
  1995 | 
  1996 |       // make sure locale is case-insensitive
  1997 |       const html2 = await renderViaHTTP(

  at Object.<anonymous> (integration/i18n-support/test/shared.js:1994:55)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should transition on client properly for page that starts with locale

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  2074 |     expect(
  2075 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 2076 |     ).toEqual(locales)
       |       ^
  2077 |     expect(
  2078 |       JSON.parse(await browser.elementByCss('#router-query').text())
  2079 |     ).toEqual({})

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2076:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should load getStaticProps page correctly SSR (default locale no prefix)

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,14 +7,14 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
  }

  2297 |     const $ = cheerio.load(html)
  2298 | 
> 2299 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2300 |       locale: 'en-US',
  2301 |       locales,
  2302 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2299:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should load getStaticProps fallback prerender page correctly SSR (default locale no prefix)

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,17 +7,17 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
    "params": Object {
      "slug": "first",
    },
  }

  2314 |     const $ = cheerio.load(html)
  2315 | 
> 2316 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2317 |       locale: 'en-US',
  2318 |       locales,
  2319 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2316:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should load getStaticProps fallback non-prerender page correctly (default locale no prefix

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,17 +7,17 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
    "params": Object {
      "slug": "another",
    },
  }

  2338 |     await browser.waitForElementByCss('#props')
  2339 | 
> 2340 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  2341 |       locale: 'en-US',
  2342 |       locales,
  2343 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2340:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should use default locale for / without accept-language

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  2408 | 
  2409 |     expect($('#router-locale').text()).toBe('en-US')
> 2410 |     expect(JSON.parse($('#router-locales').text())).toEqual(locales)
       |                                                     ^
  2411 |     expect(JSON.parse($('#router-query').text())).toEqual({})
  2412 |     expect($('#router-pathname').text()).toBe('/')
  2413 |     expect($('#router-as-path').text()).toBe('/')

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2410:53)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should load getStaticProps page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,14 +7,14 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
  }

  2438 |     const $ = cheerio.load(html)
  2439 | 
> 2440 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2441 |       locale: 'en-US',
  2442 |       locales,
  2443 |       defaultLocale: 'en-US',

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2440:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should load getStaticProps fallback prerender page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,17 +7,17 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
    "params": Object {
      "slug": "first",
    },
  }

  2455 |     const $ = cheerio.load(html)
  2456 | 
> 2457 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2458 |       locale: 'en-US',
  2459 |       locales,
  2460 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2457:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should load getStaticProps fallback non-prerender page correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,17 +7,17 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
    "params": Object {
      "slug": "another",
    },
  }

  2479 |     await browser.waitForElementByCss('#props')
  2480 | 
> 2481 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  2482 |       locale: 'en',
  2483 |       locales,
  2484 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2481:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should load getServerSideProps page correctly SSR (default locale no prefix)

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,15 +7,15 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
    "query": Object {},
  }

  2504 |     const $ = cheerio.load(html)
  2505 | 
> 2506 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2507 |       locale: 'en-US',
  2508 |       locales,
  2509 |       query: {},

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2506:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should navigate client side for default locale with no prefix

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  2524 |       expect(
  2525 |         JSON.parse(await browser.elementByCss('#router-locales').text())
> 2526 |       ).toEqual(locales)
       |         ^
  2527 |       expect(
  2528 |         JSON.parse(await browser.elementByCss('#router-query').text())
  2529 |       ).toEqual({})

  at checkIndexValues (integration/i18n-support/test/shared.js:2526:9)
      at runMicrotasks (<anonymous>)
  at Object.<anonymous> (integration/i18n-support/test/shared.js:2537:5)

● i18n Support basePath › dev mode › should load getStaticProps fallback non-prerender page another locale correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,17 +7,17 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
    "params": Object {
      "slug": "another",
    },
  }

  2604 |     await browser.waitForElementByCss('#props')
  2605 | 
> 2606 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  2607 |       locale: 'nl-NL',
  2608 |       locales,
  2609 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2606:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should load getStaticProps non-fallback correctly

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,17 +7,17 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
    "params": Object {
      "slug": "first",
    },
  }

  2631 |     await browser.waitForElementByCss('#props')
  2632 | 
> 2633 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  2634 |       locale: 'en-US',
  2635 |       locales,
  2636 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2633:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should load getStaticProps non-fallback correctly another locale

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,17 +7,17 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
    "params": Object {
      "slug": "second",
    },
  }

  2661 |     await browser.waitForElementByCss('#props')
  2662 | 
> 2663 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
       |                                                                     ^
  2664 |       locale: 'nl-NL',
  2665 |       locales,
  2666 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2663:69)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should load getStaticProps non-fallback correctly another locale via cookie

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,17 +7,17 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
    "params": Object {
      "slug": "second",
    },
  }

  2696 |     const $ = cheerio.load(html)
  2697 | 
> 2698 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2699 |       locale: 'nl-NL',
  2700 |       locales,
  2701 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2698:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should load getServerSideProps page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,15 +7,15 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
    "query": Object {},
  }

  2716 |     const $ = cheerio.load(html)
  2717 | 
> 2718 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2719 |       locale: 'en-US',
  2720 |       locales,
  2721 |       query: {},

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2718:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should load dynamic getServerSideProps page correctly SSR

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -7,17 +7,17 @@
      "nl-BE",
      "nl",
      "fr-BE",
      "fr",
      "en",
-     "zh-Hant-TW",
-     "it",
-     "en",
      "go",
      "go-BE",
      "do",
      "do-BE",
+     "zh-Hant-TW",
+     "it",
+     "en",
    ],
    "params": Object {
      "slug": "first",
    },
  }

  2749 |     const $ = cheerio.load(html)
  2750 | 
> 2751 |     expect(JSON.parse($('#props').text())).toEqual({
       |                                            ^
  2752 |       locale: 'en-US',
  2753 |       locales,
  2754 |       params: {

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2751:44)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should navigate to another page and back correctly with locale

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  2801 |     expect(
  2802 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 2803 |     ).toEqual(locales)
       |       ^
  2804 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
  2805 |       locale: 'en',
  2806 |       locales,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2803:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › dev mode › should navigate to getStaticProps page and back correctly with locale

expect(received).toEqual(expected) // deep equality

- Expected  - 3
+ Received  + 3

@@ -4,13 +4,13 @@
    "nl-BE",
    "nl",
    "fr-BE",
    "fr",
    "en",
-   "zh-Hant-TW",
-   "it",
-   "en",
    "go",
    "go-BE",
    "do",
    "do-BE",
+   "zh-Hant-TW",
+   "it",
+   "en",
  ]

  2830 |     expect(
  2831 |       JSON.parse(await browser.elementByCss('#router-locales').text())
> 2832 |     ).toEqual(locales)
       |       ^
  2833 |     expect(JSON.parse(await browser.elementByCss('#props').text())).toEqual({
  2834 |       locale: 'en',
  2835 |       locales,

  at Object.<anonymous> (integration/i18n-support/test/shared.js:2832:7)
      at runMicrotasks (<anonymous>)

● i18n Support basePath › production mode › should navigate to page with same name as development buildId

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should redirect to locale domain correctly client-side

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should render the correct href for locale domain

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should render the correct href with locale domains but not on a locale domain

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should navigate through history with query correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should not contain backslashes in pages-manifest

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should resolve href correctly when dynamic route matches locale prefixed

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should use default locale when no locale is in href with locale false

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should preload all locales data correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should have correct values for non-prefixed path

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should not have hydration mis-match from hash

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should add i18n config to routes-manifest

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should output correct prerender-manifest

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should resolve auto-export dynamic route correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should navigate to auto-export dynamic page

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should apply trailingSlash redirect correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should apply redirects correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should apply headers correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should visit API route directly correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should visit dynamic API route directly correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should rewrite to API route correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should apply rewrites correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should navigate with locale prop correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should navigate with locale prop correctly GSP

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should navigate with locale false correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should navigate with locale false correctly GSP

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should update asPath on the client correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should handle fallback correctly after generating

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should use correct default locale for locale domains

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should not strip locale prefix for default locale with locale domains

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should not redirect to accept-lang preferred locale with locale cookie

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should redirect to correct locale domain

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should handle locales with domain

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should provide defaultLocale correctly for locale domain

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should generate AMP pages with all locales

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should work with AMP first page with all locales

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should generate fallbacks with all locales

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should generate auto-export page with all locales

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should generate non-dynamic GSP page with all locales

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should not output GSP pages that returned notFound

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should 404 for GSP pages that returned notFound

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should transition on client properly for page that starts with locale

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should 404 for GSP that returned notFound on client-transition

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should render 404 for fallback page that returned 404 on client transition

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should render 404 for fallback page that returned 404

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should render 404 for blocking fallback page that returned 404 on client transition

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should render 404 for blocking fallback page that returned 404

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should not remove locale prefix for default locale

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should load getStaticProps page correctly SSR (default locale no prefix)

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should load getStaticProps fallback prerender page correctly SSR (default locale no prefix)

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should load getStaticProps fallback non-prerender page correctly (default locale no prefix

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should redirect to locale prefixed route for /

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should use default locale for / without accept-language

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should load getStaticProps page correctly SSR

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should load getStaticProps fallback prerender page correctly SSR

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should load getStaticProps fallback non-prerender page correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should load getServerSideProps page correctly SSR (default locale no prefix)

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should navigate client side for default locale with no prefix

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should load getStaticProps fallback non-prerender page another locale correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should load getStaticProps non-fallback correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should load getStaticProps non-fallback correctly another locale

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should load getStaticProps non-fallback correctly another locale via cookie

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should load getServerSideProps page correctly SSR

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should load dynamic getServerSideProps page correctly SSR

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should navigate to another page and back correctly with locale

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › production mode › should navigate to getStaticProps page and back correctly with locale

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should have correct props for blocking notFound

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should resolve rewrites correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should navigate to page with same name as development buildId

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should redirect to locale domain correctly client-side

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should render the correct href for locale domain

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should render the correct href with locale domains but not on a locale domain

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should navigate through history with query correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should not contain backslashes in pages-manifest

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should resolve href correctly when dynamic route matches locale prefixed

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should use default locale when no locale is in href with locale false

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should preload all locales data correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should have correct values for non-prefixed path

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should not have hydration mis-match from hash

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should add i18n config to routes-manifest

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should output correct prerender-manifest

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should resolve auto-export dynamic route correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should navigate to auto-export dynamic page

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should apply trailingSlash redirect correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should apply redirects correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should apply headers correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should visit API route directly correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should visit dynamic API route directly correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should rewrite to API route correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should apply rewrites correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should navigate with locale prop correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should navigate with locale prop correctly GSP

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should navigate with locale false correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should navigate with locale false correctly GSP

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should update asPath on the client correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should handle fallback correctly after generating

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should use correct default locale for locale domains

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should not strip locale prefix for default locale with locale domains

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should not redirect to accept-lang preferred locale with locale cookie

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should redirect to correct locale domain

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should handle locales with domain

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should provide defaultLocale correctly for locale domain

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should generate AMP pages with all locales

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should work with AMP first page with all locales

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should generate fallbacks with all locales

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should generate auto-export page with all locales

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should generate non-dynamic GSP page with all locales

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should not output GSP pages that returned notFound

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should 404 for GSP pages that returned notFound

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should transition on client properly for page that starts with locale

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should 404 for GSP that returned notFound on client-transition

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should render 404 for fallback page that returned 404 on client transition

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should render 404 for fallback page that returned 404

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should render 404 for blocking fallback page that returned 404 on client transition

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should render 404 for blocking fallback page that returned 404

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should not remove locale prefix for default locale

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should load getStaticProps page correctly SSR (default locale no prefix)

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should load getStaticProps fallback prerender page correctly SSR (default locale no prefix)

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should load getStaticProps fallback non-prerender page correctly (default locale no prefix

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should redirect to locale prefixed route for /

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should use default locale for / without accept-language

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should load getStaticProps page correctly SSR

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should load getStaticProps fallback prerender page correctly SSR

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should load getStaticProps fallback non-prerender page correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should load getServerSideProps page correctly SSR (default locale no prefix)

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should navigate client side for default locale with no prefix

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should load getStaticProps fallback non-prerender page another locale correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should load getStaticProps non-fallback correctly

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should load getStaticProps non-fallback correctly another locale

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should load getStaticProps non-fallback correctly another locale via cookie

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should load getServerSideProps page correctly SSR

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should load dynamic getServerSideProps page correctly SSR

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should navigate to another page and back correctly with locale

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › serverless mode › should navigate to getStaticProps page and back correctly with locale

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › with localeDetection disabled › should have localeDetection in routes-manifest

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › with localeDetection disabled › should not detect locale from accept-language

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● i18n Support basePath › with localeDetection disabled › should set locale from detected path

command failed with code 1

  138 |         code !== 0
  139 |       ) {
> 140 |         return reject(new Error(`command failed with code ${code}`))
      |                       ^
  141 |       }
  142 | 
  143 |       resolve({

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

● Test suite failed to run

TypeError: Cannot read property 'pid' of undefined

  282 | export async function killApp(instance) {
  283 |   await new Promise((resolve, reject) => {
> 284 |     treeKill(instance.pid, (err) => {
      |                       ^
  285 |       if (err) {
  286 |         if (
  287 |           process.platform === 'win32' &&

  at lib/next-test-utils.js:284:23
  at killApp (lib/next-test-utils.js:283:9)
  at integration/i18n-support-base-path/test/index.test.js:71:13

● Test suite failed to run

TypeError: Cannot read property 'pid' of undefined

  282 | export async function killApp(instance) {
  283 |   await new Promise((resolve, reject) => {
> 284 |     treeKill(instance.pid, (err) => {
      |                       ^
  285 |       if (err) {
  286 |         if (
  287 |           process.platform === 'win32' &&

  at lib/next-test-utils.js:284:23
  at killApp (lib/next-test-utils.js:283:9)
  at integration/i18n-support-base-path/test/index.test.js:92:13

● Test suite failed to run

TypeError: Cannot read property 'pid' of undefined

  282 | export async function killApp(instance) {
  283 |   await new Promise((resolve, reject) => {
> 284 |     treeKill(instance.pid, (err) => {
      |                       ^
  285 |       if (err) {
  286 |         if (
  287 |           process.platform === 'win32' &&

  at lib/next-test-utils.js:284:23
  at killApp (lib/next-test-utils.js:283:9)
  at integration/i18n-support-base-path/test/index.test.js:206:13

@vercel vercel deleted a comment from giriloou Sep 27, 2022
@ijjk ijjk deleted the branch vercel:canary October 20, 2022 16:39
@ijjk ijjk closed this Oct 20, 2022
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 20, 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.

locale negotiation is incorrect for i18n routing
4 participants