Skip to content

Conversation

@nextjs-bot nextjs-bot requested a review from eps1lon December 15, 2025 16:24
@nextjs-bot nextjs-bot added type: react-sync CI approved Approve running CI for fork create-next-app Related to our CLI tool for quickly starting a new Next.js application. examples Issue was opened via the examples template. tests type: next labels Dec 15, 2025
@nextjs-bot
Copy link
Collaborator Author

Stats from current PR

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js update/react/19.3.0-canary-bcf97c75-20251215 Change
buildDuration 18.1s 14.8s N/A
buildDurationCached 13.7s 10.8s N/A
nodeModulesSize 457 MB 457 MB ⚠️ +514 B
nextStartRea..uration (ms) 711ms 712ms N/A
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary vercel/next.js update/react/19.3.0-canary-bcf97c75-20251215 Change
2086.HASH.js gzip 169 B 169 B
2161-HASH.js gzip 5.39 kB 5.41 kB N/A
2747-HASH.js gzip 4.48 kB 4.46 kB N/A
4322-HASH.js gzip 52.9 kB 52.7 kB N/A
ec793fe8-HASH.js gzip 62.3 kB 62.3 kB N/A
framework-HASH.js gzip 59.8 kB 59.8 kB N/A
main-app-HASH.js gzip 251 B 253 B N/A
main-HASH.js gzip 38.2 kB 38.5 kB ⚠️ +385 B
webpack-HASH.js gzip 1.68 kB 1.69 kB N/A
Overall change 38.3 kB 38.7 kB ⚠️ +385 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js update/react/19.3.0-canary-bcf97c75-20251215 Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary vercel/next.js update/react/19.3.0-canary-bcf97c75-20251215 Change
_app-HASH.js gzip 194 B 193 B N/A
_error-HASH.js gzip 182 B 182 B
css-HASH.js gzip 336 B 335 B N/A
dynamic-HASH.js gzip 1.8 kB 1.8 kB N/A
edge-ssr-HASH.js gzip 256 B 256 B
head-HASH.js gzip 352 B 349 B N/A
hooks-HASH.js gzip 385 B 384 B N/A
image-HASH.js gzip 580 B 580 B
index-HASH.js gzip 259 B 258 B N/A
link-HASH.js gzip 2.5 kB 2.51 kB N/A
routerDirect..HASH.js gzip 319 B 317 B N/A
script-HASH.js gzip 385 B 387 B N/A
withRouter-HASH.js gzip 316 B 315 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 1.12 kB 1.12 kB
Client Build Manifests
vercel/next.js canary vercel/next.js update/react/19.3.0-canary-bcf97c75-20251215 Change
_buildManifest.js gzip 738 B 738 B
Overall change 738 B 738 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js update/react/19.3.0-canary-bcf97c75-20251215 Change
index.html gzip 523 B 525 B N/A
link.html gzip 538 B 538 B
withRouter.html gzip 520 B 520 B
Overall change 1.06 kB 1.06 kB
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary vercel/next.js update/react/19.3.0-canary-bcf97c75-20251215 Change
edge-ssr.js gzip 124 kB 124 kB ⚠️ +319 B
page.js gzip 236 kB 231 kB N/A
Overall change 124 kB 124 kB ⚠️ +319 B
Middleware size Overall increase ⚠️
vercel/next.js canary vercel/next.js update/react/19.3.0-canary-bcf97c75-20251215 Change
middleware-b..fest.js gzip 653 B 654 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 32.7 kB 32.9 kB ⚠️ +221 B
edge-runtime..pack.js gzip 846 B 846 B
Overall change 33.5 kB 33.8 kB ⚠️ +221 B
Next Runtimes
vercel/next.js canary vercel/next.js update/react/19.3.0-canary-bcf97c75-20251215 Change
app-page-exp...dev.js gzip 301 kB 301 kB
app-page-exp..prod.js gzip 155 kB 155 kB N/A
app-page-tur...dev.js gzip 301 kB 301 kB N/A
app-page-tur..prod.js gzip 155 kB 155 kB N/A
app-page-tur...dev.js gzip 298 kB 298 kB
app-page-tur..prod.js gzip 153 kB 153 kB
app-page.run...dev.js gzip 298 kB 298 kB N/A
app-page.run..prod.js gzip 153 kB 153 kB
app-route-ex...dev.js gzip 68.6 kB 68.6 kB N/A
app-route-ex..prod.js gzip 47.5 kB 47.5 kB
app-route-tu...dev.js gzip 68.7 kB 68.7 kB N/A
app-route-tu..prod.js gzip 47.5 kB 47.5 kB
app-route-tu...dev.js gzip 68.3 kB 68.3 kB N/A
app-route-tu..prod.js gzip 47.2 kB 47.2 kB N/A
app-route.ru...dev.js gzip 68.2 kB 68.2 kB N/A
app-route.ru..prod.js gzip 47.2 kB 47.2 kB N/A
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 328 B 328 B
dist_client_...dev.js gzip 320 B 320 B
dist_client_...dev.js gzip 318 B 318 B
pages-api-tu...dev.js gzip 41 kB 41 kB
pages-api-tu..prod.js gzip 31.1 kB 31.1 kB
pages-api.ru...dev.js gzip 41 kB 41 kB
pages-api.ru..prod.js gzip 31.1 kB 31.1 kB
pages-turbo....dev.js gzip 50.5 kB 50.5 kB
pages-turbo...prod.js gzip 38 kB 38 kB
pages.runtim...dev.js gzip 50.5 kB 50.5 kB
pages.runtim..prod.js gzip 38 kB 38 kB
server.runti..prod.js gzip 59.8 kB 59.8 kB
Overall change 1.38 MB 1.38 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js update/react/19.3.0-canary-bcf97c75-20251215 Change
0.pack gzip 3.11 MB 3.11 MB ⚠️ +2.51 kB
index.pack gzip 93.7 kB 93.1 kB N/A
Overall change 3.11 MB 3.11 MB ⚠️ +2.51 kB
Diff details
Diff for page.js

Diff too large to display

Diff for middleware.js

Diff too large to display

Diff for edge-ssr.js
failed to diff
Diff for _buildManifest.js
@@ -611,35 +611,35 @@ self.__BUILD_MANIFEST = (function (a, b, c) {
       numHashes: NaN,
       bitArray: [],
     },
-    "/": ["static\u002Fchunks\u002Fpages\u002Findex-dda7d8b64d4ba15c.js"],
+    "/": ["static\u002Fchunks\u002Fpages\u002Findex-d95f7ec6af4d2644.js"],
     "/_error": [
-      "static\u002Fchunks\u002Fpages\u002F_error-6ef44d3954f25711.js",
+      "static\u002Fchunks\u002Fpages\u002F_error-209c0c82205a7c9f.js",
     ],
     "/css": [
       "static\u002Fcss\u002Fded6b86ab9cc0a1f.css",
-      "static\u002Fchunks\u002Fpages\u002Fcss-c8aaa7211416a045.js",
+      "static\u002Fchunks\u002Fpages\u002Fcss-62710339bc830ded.js",
     ],
     "/dynamic": [
-      "static\u002Fchunks\u002Fpages\u002Fdynamic-d53bb7f318f342c2.js",
+      "static\u002Fchunks\u002Fpages\u002Fdynamic-8ed3486bb68dd6c6.js",
     ],
     "/edge-ssr": [
-      "static\u002Fchunks\u002Fpages\u002Fedge-ssr-1383106d4a3e7d72.js",
+      "static\u002Fchunks\u002Fpages\u002Fedge-ssr-0db9f7bb610d3072.js",
     ],
-    "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-1db1c4be1a45662f.js"],
-    "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-e6deee5b72a5b112.js"],
+    "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-747416c4075e42aa.js"],
+    "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-8b10205be7505244.js"],
     "/image": [
-      "static\u002Fchunks\u002F2747-90c828280005c0c3.js",
-      "static\u002Fchunks\u002Fpages\u002Fimage-868472cd5e84efc9.js",
+      "static\u002Fchunks\u002F6349-ee9aecde860d4832.js",
+      "static\u002Fchunks\u002Fpages\u002Fimage-f90ae17c3ad1d38b.js",
     ],
-    "/link": ["static\u002Fchunks\u002Fpages\u002Flink-0ec374e48b2ce5d9.js"],
+    "/link": ["static\u002Fchunks\u002Fpages\u002Flink-6ab9a67b348df1bf.js"],
     "/routerDirect": [
-      "static\u002Fchunks\u002Fpages\u002FrouterDirect-1a34bfadbc088491.js",
+      "static\u002Fchunks\u002Fpages\u002FrouterDirect-f132fb471e65a8b9.js",
     ],
     "/script": [
-      "static\u002Fchunks\u002Fpages\u002Fscript-52320f59afbd096d.js",
+      "static\u002Fchunks\u002Fpages\u002Fscript-8e2028e44b8da2d9.js",
     ],
     "/withRouter": [
-      "static\u002Fchunks\u002Fpages\u002FwithRouter-3b1a16d3dfa21c16.js",
+      "static\u002Fchunks\u002Fpages\u002FwithRouter-a86d259faa012c1c.js",
     ],
     sortedPages: [
       "\u002F",
Diff for dynamic-HASH.js
@@ -1,17 +1,24 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2291],
   {
-    /***/ 1231: /***/ (
-      module,
+    /***/ 2604: /***/ (
+      __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(4464);
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/dynamic",
+        function () {
+          return __webpack_require__(3643);
+        },
+      ]);
+      if (false) {
+      }
 
       /***/
     },
 
-    /***/ 2101: /***/ (
+    /***/ 3401: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -38,24 +45,63 @@
       /***/
     },
 
-    /***/ 3458: /***/ (
+    /***/ 3643: /***/ (
       __unused_webpack_module,
-      __unused_webpack_exports,
+      __webpack_exports__,
       __webpack_require__
     ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/dynamic",
-        function () {
-          return __webpack_require__(9381);
-        },
-      ]);
-      if (false) {
-      }
+      "use strict";
+      __webpack_require__.r(__webpack_exports__);
+      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
+        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
+        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
+        /* harmony export */
+      });
+      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
+        __webpack_require__(3108);
+      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
+        __webpack_require__(3973);
+      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
+        /*#__PURE__*/ __webpack_require__.n(
+          next_dynamic__WEBPACK_IMPORTED_MODULE_1__
+        );
+
+      const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
+        () =>
+          __webpack_require__
+            .e(/* import() */ 1596)
+            .then(__webpack_require__.bind(__webpack_require__, 1596))
+            .then((mod) => mod.Hello),
+        {
+          loadableGenerated: {
+            webpack: () => [/*require.resolve*/ 1596],
+          },
+        }
+      );
+      const Page = () =>
+        /*#__PURE__*/ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(
+          react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment,
+          {
+            children: [
+              /*#__PURE__*/ (0,
+              react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
+                children: "testing next/dynamic size",
+              }),
+              /*#__PURE__*/ (0,
+              react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
+                DynamicHello,
+                {}
+              ),
+            ],
+          }
+        );
+      var __N_SSP = true;
+      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = Page;
 
       /***/
     },
 
-    /***/ 4464: /***/ (module, exports, __webpack_require__) => {
+    /***/ 3660: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -88,7 +134,7 @@
         __webpack_require__(4312)
       );
       const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(9799)
+        __webpack_require__(4539)
       );
       const isServerSide = "object" === "undefined";
       // Normalize loader to return the module as form { default: Component } for `React.lazy`.
@@ -188,63 +234,17 @@
       /***/
     },
 
-    /***/ 9381: /***/ (
-      __unused_webpack_module,
-      __webpack_exports__,
+    /***/ 3973: /***/ (
+      module,
+      __unused_webpack_exports,
       __webpack_require__
     ) => {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
-        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
-        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
-        /* harmony export */
-      });
-      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(3108);
-      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(1231);
-      /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
-        /*#__PURE__*/ __webpack_require__.n(
-          next_dynamic__WEBPACK_IMPORTED_MODULE_1__
-        );
-
-      const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
-        () =>
-          __webpack_require__
-            .e(/* import() */ 2086)
-            .then(__webpack_require__.bind(__webpack_require__, 2086))
-            .then((mod) => mod.Hello),
-        {
-          loadableGenerated: {
-            webpack: () => [/*require.resolve*/ 2086],
-          },
-        }
-      );
-      const Page = () =>
-        /*#__PURE__*/ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(
-          react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment,
-          {
-            children: [
-              /*#__PURE__*/ (0,
-              react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
-                children: "testing next/dynamic size",
-              }),
-              /*#__PURE__*/ (0,
-              react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
-                DynamicHello,
-                {}
-              ),
-            ],
-          }
-        );
-      var __N_SSP = true;
-      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = Page;
+      module.exports = __webpack_require__(3660);
 
       /***/
     },
 
-    /***/ 9799: /***/ (
+    /***/ 4539: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -286,7 +286,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       const _react = /*#__PURE__*/ _interop_require_default._(
         __webpack_require__(4312)
       );
-      const _loadablecontextsharedruntime = __webpack_require__(2101);
+      const _loadablecontextsharedruntime = __webpack_require__(3401);
       function resolve(obj) {
         return obj && obj.default ? obj.default : obj;
       }
@@ -524,7 +524,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(3458)
+      __webpack_exec__(2604)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for edge-ssr-HASH.js
@@ -1,7 +1,24 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [676],
   {
-    /***/ 1564: /***/ (
+    /***/ 7046: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/edge-ssr",
+        function () {
+          return __webpack_require__(7142);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 7142: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -20,30 +37,13 @@
 
       /***/
     },
-
-    /***/ 4300: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/edge-ssr",
-        function () {
-          return __webpack_require__(1564);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(4300)
+      __webpack_exec__(7046)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for head-HASH.js
@@ -1,34 +1,17 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [5350],
   {
-    /***/ 1548: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/head",
-        function () {
-          return __webpack_require__(4282);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 3952: /***/ (
+    /***/ 3770: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(1653);
+      module.exports = __webpack_require__(9025);
 
       /***/
     },
 
-    /***/ 4282: /***/ (
+    /***/ 6236: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -43,7 +26,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(3108);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(3952);
+        __webpack_require__(3770);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_head__WEBPACK_IMPORTED_MODULE_1__
@@ -76,13 +59,30 @@
 
       /***/
     },
+
+    /***/ 6510: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/head",
+        function () {
+          return __webpack_require__(6236);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(1548)
+      __webpack_exec__(6510)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for index-HASH.js
@@ -1,24 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [3332],
   {
-    /***/ 6376: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/",
-        function () {
-          return __webpack_require__(8460);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 8460: /***/ (
+    /***/ 830: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -36,13 +19,30 @@
 
       /***/
     },
+
+    /***/ 1938: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/",
+        function () {
+          return __webpack_require__(830);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(6376)
+      __webpack_exec__(1938)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for link-HASH.js
@@ -1,7 +1,220 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [4672],
   {
-    /***/ 857: /***/ (module, exports, __webpack_require__) => {
+    /***/ 2774: /***/ (module, exports, __webpack_require__) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "useIntersection", {
+        enumerable: true,
+        get: function () {
+          return useIntersection;
+        },
+      });
+      const _react = __webpack_require__(4312);
+      const _requestidlecallback = __webpack_require__(9413);
+      const hasIntersectionObserver =
+        typeof IntersectionObserver === "function";
+      const observers = new Map();
+      const idList = [];
+      function createObserver(options) {
+        const id = {
+          root: options.root || null,
+          margin: options.rootMargin || "",
+        };
+        const existing = idList.find(
+          (obj) => obj.root === id.root && obj.margin === id.margin
+        );
+        let instance;
+        if (existing) {
+          instance = observers.get(existing);
+          if (instance) {
+            return instance;
+          }
+        }
+        const elements = new Map();
+        const observer = new IntersectionObserver((entries) => {
+          entries.forEach((entry) => {
+            const callback = elements.get(entry.target);
+            const isVisible =
+              entry.isIntersecting || entry.intersectionRatio > 0;
+            if (callback && isVisible) {
+              callback(isVisible);
+            }
+          });
+        }, options);
+        instance = {
+          id,
+          observer,
+          elements,
+        };
+        idList.push(id);
+        observers.set(id, instance);
+        return instance;
+      }
+      function observe(element, callback, options) {
+        const { id, observer, elements } = createObserver(options);
+        elements.set(element, callback);
+        observer.observe(element);
+        return function unobserve() {
+          elements.delete(element);
+          observer.unobserve(element);
+          // Destroy observer when there's nothing left to watch:
+          if (elements.size === 0) {
+            observer.disconnect();
+            observers.delete(id);
+            const index = idList.findIndex(
+              (obj) => obj.root === id.root && obj.margin === id.margin
+            );
+            if (index > -1) {
+              idList.splice(index, 1);
+            }
+          }
+        };
+      }
+      function useIntersection({ rootRef, rootMargin, disabled }) {
+        const isDisabled = disabled || !hasIntersectionObserver;
+        const [visible, setVisible] = (0, _react.useState)(false);
+        const elementRef = (0, _react.useRef)(null);
+        const setElement = (0, _react.useCallback)((element) => {
+          elementRef.current = element;
+        }, []);
+        (0, _react.useEffect)(() => {
+          if (hasIntersectionObserver) {
+            if (isDisabled || visible) return;
+            const element = elementRef.current;
+            if (element && element.tagName) {
+              const unobserve = observe(
+                element,
+                (isVisible) => isVisible && setVisible(isVisible),
+                {
+                  root: rootRef?.current,
+                  rootMargin,
+                }
+              );
+              return unobserve;
+            }
+          } else {
+            if (!visible) {
+              const idleCallback = (0,
+              _requestidlecallback.requestIdleCallback)(() => setVisible(true));
+              return () =>
+                (0, _requestidlecallback.cancelIdleCallback)(idleCallback);
+            }
+          }
+          // eslint-disable-next-line react-hooks/exhaustive-deps
+        }, [isDisabled, rootMargin, rootRef, visible, elementRef.current]);
+        const resetVisible = (0, _react.useCallback)(() => {
+          setVisible(false);
+        }, []);
+        return [setElement, visible, resetVisible];
+      }
+      if (
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
+      ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true,
+        });
+        Object.assign(exports.default, exports);
+        module.exports = exports.default;
+      } //# sourceMappingURL=use-intersection.js.map
+
+      /***/
+    },
+
+    /***/ 3351: /***/ (module, exports, __webpack_require__) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "useMergedRef", {
+        enumerable: true,
+        get: function () {
+          return useMergedRef;
+        },
+      });
+      const _react = __webpack_require__(4312);
+      function useMergedRef(refA, refB) {
+        const cleanupA = (0, _react.useRef)(null);
+        const cleanupB = (0, _react.useRef)(null);
+        // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.
+        // (this happens often if the user doesn't pass a ref to Link/Form/Image)
+        // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),
+        // and the user might pass that ref into ref-merging library that doesn't support cleanup refs
+        // (because it hasn't been updated for React 19)
+        // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.
+        // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.
+        return (0, _react.useCallback)(
+          (current) => {
+            if (current === null) {
+              const cleanupFnA = cleanupA.current;
+              if (cleanupFnA) {
+                cleanupA.current = null;
+                cleanupFnA();
+              }
+              const cleanupFnB = cleanupB.current;
+              if (cleanupFnB) {
+                cleanupB.current = null;
+                cleanupFnB();
+              }
+            } else {
+              if (refA) {
+                cleanupA.current = applyRef(refA, current);
+              }
+              if (refB) {
+                cleanupB.current = applyRef(refB, current);
+              }
+            }
+          },
+          [refA, refB]
+        );
+      }
+      function applyRef(refA, current) {
+        if (typeof refA === "function") {
+          const cleanup = refA(current);
+          if (typeof cleanup === "function") {
+            return cleanup;
+          } else {
+            return () => refA(null);
+          }
+        } else {
+          refA.current = current;
+          return () => {
+            refA.current = null;
+          };
+        }
+      }
+      if (
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
+      ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true,
+        });
+        Object.assign(exports.default, exports);
+        module.exports = exports.default;
+      } //# sourceMappingURL=use-merged-ref.js.map
+
+      /***/
+    },
+
+    /***/ 3440: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(4757);
+
+      /***/
+    },
+
+    /***/ 4757: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -23,22 +236,22 @@
           return useLinkStatus;
         },
       });
-      const _interop_require_wildcard = __webpack_require__(8781);
+      const _interop_require_wildcard = __webpack_require__(1162);
       const _jsxruntime = __webpack_require__(3108);
       const _react = /*#__PURE__*/ _interop_require_wildcard._(
         __webpack_require__(4312)
       );
-      const _resolvehref = __webpack_require__(4055);
-      const _islocalurl = __webpack_require__(7175);
-      const _formaturl = __webpack_require__(9674);
-      const _utils = __webpack_require__(7424);
-      const _addlocale = __webpack_require__(589);
-      const _routercontextsharedruntime = __webpack_require__(7010);
-      const _useintersection = __webpack_require__(2330);
-      const _getdomainlocale = __webpack_require__(7207);
-      const _addbasepath = __webpack_require__(9942);
-      const _usemergedref = __webpack_require__(8067);
-      const _erroronce = __webpack_require__(1945);
+      const _resolvehref = __webpack_require__(4691);
+      const _islocalurl = __webpack_require__(4763);
+      const _formaturl = __webpack_require__(3246);
+      const _utils = __webpack_require__(7372);
+      const _addlocale = __webpack_require__(1809);
+      const _routercontextsharedruntime = __webpack_require__(2254);
+      const _useintersection = __webpack_require__(2774);
+      const _getdomainlocale = __webpack_require__(8803);
+      const _addbasepath = __webpack_require__(5834);
+      const _usemergedref = __webpack_require__(3351);
+      const _erroronce = __webpack_require__(6021);
       const prefetched = new Set();
       function prefetch(router, href, as, options) {
         if (false) {
@@ -417,168 +630,43 @@
       /***/
     },
 
-    /***/ 1945: /***/ (__unused_webpack_module, exports) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "errorOnce", {
-        enumerable: true,
-        get: function () {
-          return errorOnce;
+    /***/ 5326: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/link",
+        function () {
+          return __webpack_require__(9058);
         },
-      });
-      let errorOnce = (_) => {};
+      ]);
       if (false) {
-      } //# sourceMappingURL=error-once.js.map
+      }
 
       /***/
     },
 
-    /***/ 2330: /***/ (module, exports, __webpack_require__) => {
+    /***/ 6021: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
         value: true,
       });
-      Object.defineProperty(exports, "useIntersection", {
+      Object.defineProperty(exports, "errorOnce", {
         enumerable: true,
         get: function () {
-          return useIntersection;
+          return errorOnce;
         },
       });
-      const _react = __webpack_require__(4312);
-      const _requestidlecallback = __webpack_require__(601);
-      const hasIntersectionObserver =
-        typeof IntersectionObserver === "function";
-      const observers = new Map();
-      const idList = [];
-      function createObserver(options) {
-        const id = {
-          root: options.root || null,
-          margin: options.rootMargin || "",
-        };
-        const existing = idList.find(
-          (obj) => obj.root === id.root && obj.margin === id.margin
-        );
-        let instance;
-        if (existing) {
-          instance = observers.get(existing);
-          if (instance) {
-            return instance;
-          }
-        }
-        const elements = new Map();
-        const observer = new IntersectionObserver((entries) => {
-          entries.forEach((entry) => {
-            const callback = elements.get(entry.target);
-            const isVisible =
-              entry.isIntersecting || entry.intersectionRatio > 0;
-            if (callback && isVisible) {
-              callback(isVisible);
-            }
-          });
-        }, options);
-        instance = {
-          id,
-          observer,
-          elements,
-        };
-        idList.push(id);
-        observers.set(id, instance);
-        return instance;
-      }
-      function observe(element, callback, options) {
-        const { id, observer, elements } = createObserver(options);
-        elements.set(element, callback);
-        observer.observe(element);
-        return function unobserve() {
-          elements.delete(element);
-          observer.unobserve(element);
-          // Destroy observer when there's nothing left to watch:
-          if (elements.size === 0) {
-            observer.disconnect();
-            observers.delete(id);
-            const index = idList.findIndex(
-              (obj) => obj.root === id.root && obj.margin === id.margin
-            );
-            if (index > -1) {
-              idList.splice(index, 1);
-            }
-          }
-        };
-      }
-      function useIntersection({ rootRef, rootMargin, disabled }) {
-        const isDisabled = disabled || !hasIntersectionObserver;
-        const [visible, setVisible] = (0, _react.useState)(false);
-        const elementRef = (0, _react.useRef)(null);
-        const setElement = (0, _react.useCallback)((element) => {
-          elementRef.current = element;
-        }, []);
-        (0, _react.useEffect)(() => {
-          if (hasIntersectionObserver) {
-            if (isDisabled || visible) return;
-            const element = elementRef.current;
-            if (element && element.tagName) {
-              const unobserve = observe(
-                element,
-                (isVisible) => isVisible && setVisible(isVisible),
-                {
-                  root: rootRef?.current,
-                  rootMargin,
-                }
-              );
-              return unobserve;
-            }
-          } else {
-            if (!visible) {
-              const idleCallback = (0,
-              _requestidlecallback.requestIdleCallback)(() => setVisible(true));
-              return () =>
-                (0, _requestidlecallback.cancelIdleCallback)(idleCallback);
-            }
-          }
-          // eslint-disable-next-line react-hooks/exhaustive-deps
-        }, [isDisabled, rootMargin, rootRef, visible, elementRef.current]);
-        const resetVisible = (0, _react.useCallback)(() => {
-          setVisible(false);
-        }, []);
-        return [setElement, visible, resetVisible];
-      }
-      if (
-        (typeof exports.default === "function" ||
-          (typeof exports.default === "object" && exports.default !== null)) &&
-        typeof exports.default.__esModule === "undefined"
-      ) {
-        Object.defineProperty(exports.default, "__esModule", {
-          value: true,
-        });
-        Object.assign(exports.default, exports);
-        module.exports = exports.default;
-      } //# sourceMappingURL=use-intersection.js.map
-
-      /***/
-    },
-
-    /***/ 4972: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/link",
-        function () {
-          return __webpack_require__(7600);
-        },
-      ]);
+      let errorOnce = (_) => {};
       if (false) {
-      }
+      } //# sourceMappingURL=error-once.js.map
 
       /***/
     },
 
-    /***/ 7207: /***/ (module, exports, __webpack_require__) => {
+    /***/ 8803: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -590,7 +678,7 @@
           return getDomainLocale;
         },
       });
-      const _normalizetrailingslash = __webpack_require__(151);
+      const _normalizetrailingslash = __webpack_require__(1315);
       const basePath =
         /* unused pure expression or super */ null && (false || "");
       function getDomainLocale(path, locale, locales, domainLocales) {
@@ -614,7 +702,7 @@
       /***/
     },
 
-    /***/ 7600: /***/ (
+    /***/ 9058: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -629,7 +717,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(3108);
       /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(7830);
+        __webpack_require__(3440);
       /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_link__WEBPACK_IMPORTED_MODULE_1__
@@ -659,101 +747,13 @@
 
       /***/
     },
-
-    /***/ 7830: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(857);
-
-      /***/
-    },
-
-    /***/ 8067: /***/ (module, exports, __webpack_require__) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "useMergedRef", {
-        enumerable: true,
-        get: function () {
-          return useMergedRef;
-        },
-      });
-      const _react = __webpack_require__(4312);
-      function useMergedRef(refA, refB) {
-        const cleanupA = (0, _react.useRef)(null);
-        const cleanupB = (0, _react.useRef)(null);
-        // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.
-        // (this happens often if the user doesn't pass a ref to Link/Form/Image)
-        // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),
-        // and the user might pass that ref into ref-merging library that doesn't support cleanup refs
-        // (because it hasn't been updated for React 19)
-        // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.
-        // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.
-        return (0, _react.useCallback)(
-          (current) => {
-            if (current === null) {
-              const cleanupFnA = cleanupA.current;
-              if (cleanupFnA) {
-                cleanupA.current = null;
-                cleanupFnA();
-              }
-              const cleanupFnB = cleanupB.current;
-              if (cleanupFnB) {
-                cleanupB.current = null;
-                cleanupFnB();
-              }
-            } else {
-              if (refA) {
-                cleanupA.current = applyRef(refA, current);
-              }
-              if (refB) {
-                cleanupB.current = applyRef(refB, current);
-              }
-            }
-          },
-          [refA, refB]
-        );
-      }
-      function applyRef(refA, current) {
-        if (typeof refA === "function") {
-          const cleanup = refA(current);
-          if (typeof cleanup === "function") {
-            return cleanup;
-          } else {
-            return () => refA(null);
-          }
-        } else {
-          refA.current = current;
-          return () => {
-            refA.current = null;
-          };
-        }
-      }
-      if (
-        (typeof exports.default === "function" ||
-          (typeof exports.default === "object" && exports.default !== null)) &&
-        typeof exports.default.__esModule === "undefined"
-      ) {
-        Object.defineProperty(exports.default, "__esModule", {
-          value: true,
-        });
-        Object.assign(exports.default, exports);
-        module.exports = exports.default;
-      } //# sourceMappingURL=use-merged-ref.js.map
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(4972)
+      __webpack_exec__(5326)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for routerDirect-HASH.js
@@ -1,17 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [188],
   {
-    /***/ 1179: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(9864);
-
-      /***/
-    },
-
-    /***/ 1640: /***/ (
+    /***/ 2014: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -26,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(3108);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(1179);
+        __webpack_require__(4169);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -46,7 +36,17 @@
       /***/
     },
 
-    /***/ 2172: /***/ (
+    /***/ 4169: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(9700);
+
+      /***/
+    },
+
+    /***/ 4414: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -54,7 +54,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/routerDirect",
         function () {
-          return __webpack_require__(1640);
+          return __webpack_require__(2014);
         },
       ]);
       if (false) {
@@ -68,7 +68,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(2172)
+      __webpack_exec__(4414)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for script-HASH.js
@@ -1,17 +1,34 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [1209],
   {
-    /***/ 4977: /***/ (
+    /***/ 2591: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(326);
+      module.exports = __webpack_require__(4634);
 
       /***/
     },
 
-    /***/ 5887: /***/ (
+    /***/ 5030: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/script",
+        function () {
+          return __webpack_require__(7557);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 7557: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -26,7 +43,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(3108);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(4977);
+        __webpack_require__(2591);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -58,30 +75,13 @@
 
       /***/
     },
-
-    /***/ 6268: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/script",
-        function () {
-          return __webpack_require__(5887);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(6268)
+      __webpack_exec__(5030)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for withRouter-HASH.js
@@ -1,34 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [3263],
   {
-    /***/ 1179: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(9864);
-
-      /***/
-    },
-
-    /***/ 2028: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/withRouter",
-        function () {
-          return __webpack_require__(4501);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 4501: /***/ (
+    /***/ 559: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -43,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(3108);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(1179);
+        __webpack_require__(4169);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -61,13 +34,40 @@
 
       /***/
     },
+
+    /***/ 726: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/withRouter",
+        function () {
+          return __webpack_require__(559);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 4169: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(9700);
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(2028)
+      __webpack_exec__(726)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 2161-HASH.js

Diff too large to display

Diff for 2747-HASH.js

Diff too large to display

Diff for 4322-HASH.js
failed to diff
Diff for main-HASH.js

Diff too large to display

Diff for app-page-exp..ntime.dev.js
failed to diff
Diff for app-page-tur..ntime.dev.js
failed to diff
Diff for app-page-tur..ntime.dev.js
failed to diff
Diff for app-page.runtime.dev.js
failed to diff
Diff for server.runtime.prod.js

Diff too large to display

Commit: 193aaa8

@nextjs-bot
Copy link
Collaborator Author

nextjs-bot commented Dec 15, 2025

Failing test suites

Commit: 193aaa8 | About building and testing Next.js

pnpm test packages/next-codemod/transforms/__tests__/built-in-next-font.test.js (job)

  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-01 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-02 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-03 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-04 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-05 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-06 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-07 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-08 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-10 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-11 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-12 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-13 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-14 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-15 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-16 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-17 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-18 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-19 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-21 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-22 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-23 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-24 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-25 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-type-cast-01 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/async-api-type-cast-02 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/custom-routes-access-api-prop-01 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/generate-metadata-access-api-prop-01 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/generate-metadata-access-api-prop-02 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/generate-metadata-access-api-prop-03 (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/origin-name-01-util (DD)
  • next-async-request-api - dynamic-apis > transforms correctly next-async-request-api-dynamic-apis/origin-name-02-util (DD)
Expand output

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-01

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

- Expected  - 9
+ Received  + 9

- import { cookies } from 'next/headers'
-
+ import { cookies } from 'next/headers'
+ 
- export async function MyComponent() {
+ export async function MyComponent() {
-   const name = (await cookies()).get('name')
+   const name = (await cookies()).get('name')
-   callback(name)
+   callback(name)
- }
-
+ }
+ 
- function callback(name: any) {
+ function callback(name: any) {
-   console.log(name)
+   console.log(name)
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-02

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

- Expected  - 4
+ Received  + 4

- import { draftMode } from 'next/headers'
-
+ import { draftMode } from 'next/headers'
+ 
- export async function MyComponent() {
+ export async function MyComponent() {
-   (await draftMode()).enable()
+   (await draftMode()).enable()
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-03

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

- Expected  - 5
+ Received  + 5

- // If it's sync default export, convert to async and await the function call
+ // If it's sync default export, convert to async and await the function call
- import { draftMode } from 'next/headers'
-
+ import { draftMode } from 'next/headers'
+ 
- export default async function MyComponent() {
+ export default async function MyComponent() {
-   (await draftMode()).enable()
+   (await draftMode()).enable()
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-04

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

- Expected  - 8
+ Received  + 8

- import { draftMode } from 'next/headers'
-
+ import { draftMode } from 'next/headers'
+ 
- export default async function MyComponent() {
+ export default async function MyComponent() {
-   (await draftMode()).enable()
+   (await draftMode()).enable()
- }
-
+ }
+ 
- export async function MyComponent2() {
+ export async function MyComponent2() {
-   (await draftMode()).enable()
+   (await draftMode()).enable()
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-05

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

- Expected  - 9
+ Received  + 9

- import { use } from "react";
+ import { use } from "react";
- import { draftMode, type UnsafeUnwrappedDraftMode } from 'next/headers';
-
+ import { draftMode, type UnsafeUnwrappedDraftMode } from 'next/headers';
+ 
- export function MyComponent2() {
+ export function MyComponent2() {
-   (draftMode() as unknown as UnsafeUnwrappedDraftMode).enable()
+   (draftMode() as unknown as UnsafeUnwrappedDraftMode).enable()
- }
-
+ }
+ 
- export function useDraftModeEnabled() {
+ export function useDraftModeEnabled() {
-   use(draftMode()).enable()
+   use(draftMode()).enable()
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-06

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

- Expected  - 5
+ Received  + 5

- import React from 'react'
+ import React from 'react'
- import { draftMode } from 'next/headers'
-
+ import { draftMode } from 'next/headers'
+ 
- export default async function Page() {
+ export default async function Page() {
-   return <button disabled={(await draftMode()).isEnabled}>Enable Draft Mode</button>;
+   return <button disabled={(await draftMode()).isEnabled}>Enable Draft Mode</button>;
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-07

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

- Expected  - 5
+ Received  + 5

- // Already imported the type
+ // Already imported the type
- import { draftMode, type UnsafeUnwrappedDraftMode } from 'next/headers'
-
+ import { draftMode, type UnsafeUnwrappedDraftMode } from 'next/headers'
+ 
- export function MyComponent2() {
+ export function MyComponent2() {
-   (draftMode() as unknown as UnsafeUnwrappedDraftMode).enable()
+   (draftMode() as unknown as UnsafeUnwrappedDraftMode).enable()
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-08

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

- Expected  - 4
+ Received  + 4

- import { headers } from 'next/headers'
-
+ import { headers } from 'next/headers'
+ 
- export async function GET(): Promise<Response> {
+ export async function GET(): Promise<Response> {
-   await headers()
+   await headers()
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-10

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

- Expected  - 12
+ Received  + 12

- import { headers, type UnsafeUnwrappedHeaders } from 'next/headers';
-
+ import { headers, type UnsafeUnwrappedHeaders } from 'next/headers';
+ 
- export function MyComp() {
+ export function MyComp() {
-   return (headers() as unknown as UnsafeUnwrappedHeaders);
+   return (headers() as unknown as UnsafeUnwrappedHeaders);
- }
-
+ }
+ 
- export function MyComp2() {
+ export function MyComp2() {
-   return (headers() as unknown as UnsafeUnwrappedHeaders);
+   return (headers() as unknown as UnsafeUnwrappedHeaders);
- }
-
+ }
+ 
- export function MyComp3() {
+ export function MyComp3() {
-   return (headers() as unknown as UnsafeUnwrappedHeaders);
+   return (headers() as unknown as UnsafeUnwrappedHeaders);
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-11

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

- Expected  - 8
+ Received  + 8

- import { headers, type UnsafeUnwrappedHeaders } from 'next/headers';
-
+ import { headers, type UnsafeUnwrappedHeaders } from 'next/headers';
+ 
- export function MyComp() {
+ export function MyComp() {
-   void (headers() as unknown as UnsafeUnwrappedHeaders)
+   void (headers() as unknown as UnsafeUnwrappedHeaders)
- }
-
+ }
+ 
- export function generateContentfulMetadata() {
+ export function generateContentfulMetadata() {
-   void (headers() as unknown as UnsafeUnwrappedHeaders)
+   void (headers() as unknown as UnsafeUnwrappedHeaders)
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-12

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

- Expected  - 4
+ Received  + 4

- import { cookies } from "next/headers";
-
+ import { cookies } from "next/headers";
+ 
- async function MyComponent() {
+ async function MyComponent() {
-   callSomething(await cookies());
+   callSomething(await cookies());
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-13

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

- Expected  - 4
+ Received  + 4

- import { headers } from "next/headers";
-
+ import { headers } from "next/headers";
+ 
- async function MyComponent() {
+ async function MyComponent() {
-   callSomething(await headers());
+   callSomething(await headers());
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-14

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

- Expected  - 4
+ Received  + 4

- import { cookies } from "next/headers";
-
+ import { cookies } from "next/headers";
+ 
- export default async function Page() {
+ export default async function Page() {
-   callSomething(await cookies());
+   callSomething(await cookies());
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-15

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

- Expected  - 7
+ Received  + 7

- import { cookies } from "next/headers";
-
+ import { cookies } from "next/headers";
+ 
- async function MyComponent() {
+ async function MyComponent() {
-   function asyncFunction() {
+   function asyncFunction() {
-     callSomething(/* @next-codemod-error Manually await this call and refactor the function to be async */
+     callSomething(/* @next-codemod-error Manually await this call and refactor the function to be async */
-     cookies());
+     cookies());
-   }
+   }
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-16

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

- Expected  - 5
+ Received  + 5

- import { cookies } from "next/headers";
-
+ import { cookies } from "next/headers";
+ 
- function MyComponent() {
+ function MyComponent() {
-   callSomething(/* @next-codemod-error Manually await this call and refactor the function to be async */
+   callSomething(/* @next-codemod-error Manually await this call and refactor the function to be async */
-   cookies());
+   cookies());
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-17

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

- Expected  - 4
+ Received  + 4

- import { cookies } from 'next/headers'
-
+ import { cookies } from 'next/headers'
+ 
- export const myFun = async (): Promise<any> => {
+ export const myFun = async (): Promise<any> => {
-   const name = (await cookies()).get('name')
+   const name = (await cookies()).get('name')
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-18

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

- Expected  - 16
+ Received  + 16

- import {
+ import {
-   cookies as myCookies,
+   cookies as myCookies,
-   headers as myHeaders,
+   headers as myHeaders,
-   draftMode as myDraftMode,
+   draftMode as myDraftMode,
- } from 'next/headers'
-
+ } from 'next/headers'
+ 
- export const myFun = async (): Promise<any> => {
+ export const myFun = async (): Promise<any> => {
-   const name = (await myCookies()).get('name')
+   const name = (await myCookies()).get('name')
- }
-
+ }
+ 
- export const myFun2 = async (): Promise<any> => {
+ export const myFun2 = async (): Promise<any> => {
-   await myHeaders()
+   await myHeaders()
- }
-
+ }
+ 
- export const myFun3 = async (): Promise<any> => {
+ export const myFun3 = async (): Promise<any> => {
-   await myDraftMode()
+   await myDraftMode()
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-19

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

- Expected  - 12
+ Received  + 12

- import { cookies, headers, type UnsafeUnwrappedHeaders } from 'next/headers';
-
+ import { cookies, headers, type UnsafeUnwrappedHeaders } from 'next/headers';
+ 
- export function myFun() {
+ export function myFun() {
-   return async function () {
+   return async function () {
-     (await cookies()).get('name')
+     (await cookies()).get('name')
-   };
+   };
- }
-
+ }
+ 
- export function myFun2() {
+ export function myFun2() {
-   return function () {
+   return function () {
-     void (headers() as unknown as UnsafeUnwrappedHeaders)
+     void (headers() as unknown as UnsafeUnwrappedHeaders)
-   };
+   };
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-21

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

- Expected  - 7
+ Received  + 7

- const nextHeaders = /* @next-codemod-error The APIs under 'next/headers' are async now, need to be manually awaited. */
+ const nextHeaders = /* @next-codemod-error The APIs under 'next/headers' are async now, need to be manually awaited. */
- import('next/headers')
-
+ import('next/headers')
+ 
- function myFunc() {
+ function myFunc() {
-   nextHeaders.cookies()
+   nextHeaders.cookies()
- }
-
+ }
+ 
  const nextHeaders2 = /* @next-codemod-error The APIs under 'next/headers' are async now, need to be manually awaited. */ import('next/headers')

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-22

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

- Expected  - 10
+ Received  + 10

- import { cookies } from 'next/headers'
-
+ import { cookies } from 'next/headers'
+ 
- export const GET = async function() {
+ export const GET = async function() {
-   (await cookies()).get('token')
+   (await cookies()).get('token')
- }
-
+ }
+ 
- export async function POST(req: Request) {
+ export async function POST(req: Request) {
-   if (req.method === 'POST') {
+   if (req.method === 'POST') {
-     (await cookies()).get('token')
+     (await cookies()).get('token')
-   }
+   }
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-23

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

- Expected  - 5
+ Received  + 5

- import { cookies } from 'next/headers'
-
+ import { cookies } from 'next/headers'
+ 
- export type Cookie = Awaited<ReturnType<typeof cookies>>
+ export type Cookie = Awaited<ReturnType<typeof cookies>>
- export function foo(c: Awaited<ReturnType<typeof cookies>>) {
+ export function foo(c: Awaited<ReturnType<typeof cookies>>) {
-   return c
+   return c
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-24

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

- Expected  - 12
+ Received  + 12

- import { use } from "react";
+ import { use } from "react";
- import { cookies } from 'next/headers'
-
+ import { cookies } from 'next/headers'
+ 
- function useHook() {}
-
+ function useHook() {}
+ 
- export default function Page() {
+ export default function Page() {
-   useHook()
+   useHook()
-   const c = use(cookies());
+   const c = use(cookies());
- }
-
+ }
+ 
- export async function generateMetadata() {
+ export async function generateMetadata() {
-   await cookies()
+   await cookies()
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-25

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

- Expected  - 5
+ Received  + 5

- import { cookies, type UnsafeUnwrappedCookies } from 'next/headers';
-
+ import { cookies, type UnsafeUnwrappedCookies } from 'next/headers';
+ 
- export function myFunc() {
+ export function myFunc() {
-   const c = (cookies() as unknown as UnsafeUnwrappedCookies)
+   const c = (cookies() as unknown as UnsafeUnwrappedCookies)
-   void (cookies() as unknown as UnsafeUnwrappedCookies)
+   void (cookies() as unknown as UnsafeUnwrappedCookies)
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-type-cast-01

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

- Expected  - 26
+ Received  + 26

- import React from 'react'
+ import React from 'react'
- import {
+ import {
-   headers,
+   headers,
-   cookies,
+   cookies,
-   draftMode,
+   draftMode,
-   type UnsafeUnwrappedHeaders,
+   type UnsafeUnwrappedHeaders,
-   type UnsafeUnwrappedCookies,
+   type UnsafeUnwrappedCookies,
-   type UnsafeUnwrappedDraftMode,
+   type UnsafeUnwrappedDraftMode,
- } from 'next/headers';
-
+ } from 'next/headers';
+ 
- export function MyDraftComponent() {
+ export function MyDraftComponent() {
-   if ((draftMode() as unknown as UnsafeUnwrappedDraftMode).isEnabled) {
+   if ((draftMode() as unknown as UnsafeUnwrappedDraftMode).isEnabled) {
-     return null
+     return null
-   }
-
+   }
+ 
-   return <p>page</p>
+   return <p>page</p>
- }
-
+ }
+ 
- export function MyCookiesComponent() {
+ export function MyCookiesComponent() {
-   const c = (cookies() as unknown as UnsafeUnwrappedCookies)
+   const c = (cookies() as unknown as UnsafeUnwrappedCookies)
-   return c.get('name')
+   return c.get('name')
- }
-
+ }
+ 
- export function MyHeadersComponent() {
+ export function MyHeadersComponent() {
-   const h = (headers() as unknown as UnsafeUnwrappedHeaders)
+   const h = (headers() as unknown as UnsafeUnwrappedHeaders)
-   return <p>{h.get('x-foo')}</p>
+   return <p>{h.get('x-foo')}</p>
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/async-api-type-cast-02

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

- Expected  - 28
+ Received  + 28

- import React from 'react'
+ import React from 'react'
- import { 
+ import { 
-   headers,
+   headers,
-   cookies, 
+   cookies, 
-   draftMode, 
+   draftMode, 
- } from 'next/headers'
-
+ } from 'next/headers'
+ 
- export function MyDraftComponent() {
+ export function MyDraftComponent() {
- if (/* @next-codemod-error Manually await this call and refactor the function to be async */
+ if (/* @next-codemod-error Manually await this call and refactor the function to be async */
- draftMode().isEnabled) {
+ draftMode().isEnabled) {
-     return null
+     return null
-   }
-
+   }
+ 
-   return <p>page</p>
+   return <p>page</p>
- }
-
+ }
+ 
- export function MyCookiesComponent() {
+ export function MyCookiesComponent() {
-   const c = /* @next-codemod-error Manually await this call and refactor the function to be async */
+   const c = /* @next-codemod-error Manually await this call and refactor the function to be async */
-   cookies()
+   cookies()
-   return c.get('name')
+   return c.get('name')
- }
-
+ }
+ 
- export function MyHeadersComponent() {
+ export function MyHeadersComponent() {
-   const h = /* @next-codemod-error Manually await this call and refactor the function to be async */
+   const h = /* @next-codemod-error Manually await this call and refactor the function to be async */
-   headers()
+   headers()
-   return (
+   return (
-     <p>{h.get('x-foo')}</p>
+     <p>{h.get('x-foo')}</p>
-   )
+   )
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/custom-routes-access-api-prop-01

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

- Expected  - 12
+ Received  + 12

- import { headers } from 'next/headers'
-
+ import { headers } from 'next/headers'
+ 
- export const GET = async function() {
+ export const GET = async function() {
-   await headers()
+   await headers()
- }
-
+ }
+ 
- export async function POST() {
+ export async function POST() {
-   await headers()
+   await headers()
- }
-
+ }
+ 
- export async function DELETE() {
+ export async function DELETE() {
-   await headers()
+   await headers()
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/generate-metadata-access-api-prop-01

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

- Expected  - 4
+ Received  + 4

- import { headers } from 'next/headers'
-
+ import { headers } from 'next/headers'
+ 
- export async function generateMetadata() {
+ export async function generateMetadata() {
-   await headers()
+   await headers()
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/generate-metadata-access-api-prop-02

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

- Expected  - 4
+ Received  + 4

- import { headers } from 'next/headers'
-
+ import { headers } from 'next/headers'
+ 
- export const generateMetadata = async function() {
+ export const generateMetadata = async function() {
-   await headers()
+   await headers()
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/generate-metadata-access-api-prop-03

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

- Expected  - 5
+ Received  + 5

- import { draftMode } from 'next/headers'
-
+ import { draftMode } from 'next/headers'
+ 
- export async function generateMetadata(props: any) {
+ export async function generateMetadata(props: any) {
-   const params = await props.params
+   const params = await props.params
-   await getMostRecentChangelog(params.slug, (await draftMode()).isEnabled)
+   await getMostRecentChangelog(params.slug, (await draftMode()).isEnabled)
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/origin-name-01-util

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

- Expected  - 5
+ Received  + 5

- import { cookies, type UnsafeUnwrappedCookies } from 'next/headers';
-
+ import { cookies, type UnsafeUnwrappedCookies } from 'next/headers';
+ 
- export default function Foo(): string {
+ export default function Foo(): string {
-   const name = (cookies() as unknown as UnsafeUnwrappedCookies).get('name')
+   const name = (cookies() as unknown as UnsafeUnwrappedCookies).get('name')
-   return name
+   return name
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

● next-async-request-api - dynamic-apis › transforms correctly next-async-request-api-dynamic-apis/origin-name-02-util

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

- Expected  - 6
+ Received  + 6

- import { cookies } from 'next/headers'
-
+ import { cookies } from 'next/headers'
+ 
- export default function Foo() {
+ export default function Foo() {
-   const name = /* @next-codemod-error Manually await this call and refactor the function to be async */
+   const name = /* @next-codemod-error Manually await this call and refactor the function to be async */
-   cookies().get('name')
+   cookies().get('name')
-   return name
+   return name
  }

  53 |
  54 |     it(`transforms correctly ${prefix}`, () => {
> 55 |       runInlineTest(
     |       ^
  56 |         transform,
  57 |         null,
  58 |         {

  at runInlineTest (../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_/node_modules/jscodeshift/dist/testUtils.js:49:18)
  at Object.runInlineTest (../packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-apis.test.js:55:7)

pnpm test test/integration/next-image-legacy/basic/test/index.test.ts (turbopack) (job)

  • Image Component Tests > production mode > Client-side Image Component Tests > should render an image tag (DD)
  • Image Component Tests > production mode > Client-side Image Component Tests > should support passing through arbitrary attributes (DD)
  • Image Component Tests > production mode > Client-side Image Component Tests > should modify src with the loader (DD)
  • Image Component Tests > production mode > Client-side Image Component Tests > should correctly generate src even if preceding slash is included in prop (DD)
  • Image Component Tests > production mode > Client-side Image Component Tests > should add a srcset based on the loader (DD)
  • Image Component Tests > production mode > Client-side Image Component Tests > should add a srcset even with preceding slash in prop (DD)
  • Image Component Tests > production mode > Client-side Image Component Tests > should use imageSizes when width matches, not deviceSizes from next.config.js (DD)
  • Image Component Tests > production mode > Client-side Image Component Tests > should support the unoptimized attribute (DD)
  • Image Component Tests > production mode > Client-side Image Component Tests > should not add a srcset if unoptimized attribute present (DD)
  • Image Component Tests > production mode > Client-side Image Component Tests > should keep auto parameter if already set (DD)
  • Image Component Tests > production mode > Client-side Image Component Tests > should keep width parameter if already set (DD)
  • Image Component Tests > production mode > Client-side Image Component Tests > should keep fit parameter if already set (DD)
  • Image Component Tests > production mode > Client-side Image Component Tests > should only be loaded once if sizes is set (DD)
  • Image Component Tests > production mode > Client-side Image Component Tests > Client-side Errors > Should not log an error when an unregistered host is used in production (DD)
  • Image Component Tests > production mode > Client-side Lazy Loading Tests > should have loaded the first image immediately (DD)
  • Image Component Tests > production mode > Client-side Lazy Loading Tests > should not have loaded the second image immediately (DD)
  • Image Component Tests > production mode > Client-side Lazy Loading Tests > should pass through classes on a lazy loaded image (DD)
  • Image Component Tests > production mode > Client-side Lazy Loading Tests > should load the second image after scrolling down (DD)
  • Image Component Tests > production mode > Client-side Lazy Loading Tests > should not have loaded the third image after scrolling down (DD)
  • Image Component Tests > production mode > Client-side Lazy Loading Tests > should load the third image, which is unoptimized, after scrolling further down (DD)
  • Image Component Tests > production mode > Client-side Lazy Loading Tests > should load the fourth image lazily after scrolling down (DD)
  • Image Component Tests > production mode > Client-side Lazy Loading Tests > should load the fifth image eagerly, without scrolling (DD)
  • Image Component Tests > production mode > Client-side Lazy Loading Tests > should load the sixth image, which has lazyBoundary property after scrolling down (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should render an image tag (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should support passing through arbitrary attributes (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should modify src with the loader (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should correctly generate src even if preceding slash is included in prop (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should add a srcset based on the loader (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should add a srcset even with preceding slash in prop (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should use imageSizes when width matches, not deviceSizes from next.config.js (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should support the unoptimized attribute (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should not add a srcset if unoptimized attribute present (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should keep auto parameter if already set (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should keep width parameter if already set (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should keep fit parameter if already set (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should add a preload tag for a priority image (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should add a preload tag for a priority image with preceding slash (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should add a preload tag for a priority image, with arbitrary host (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should add a preload tag for a priority image, with quality (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should not create any preload tags higher up the page than CSS preload tags (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should add data-nimg data attribute based on layout (DD)
  • Image Component Tests > production mode > SSR Image Component Tests > should not pass config to custom loader prop (DD)
  • Image Component Tests > production mode > SSR Lazy Loading Tests > should have loaded the first image immediately (DD)
  • Image Component Tests > production mode > SSR Lazy Loading Tests > should not have loaded the second image immediately (DD)
  • Image Component Tests > production mode > SSR Lazy Loading Tests > should pass through classes on a lazy loaded image (DD)
  • Image Component Tests > production mode > SSR Lazy Loading Tests > should load the second image after scrolling down (DD)
  • Image Component Tests > production mode > SSR Lazy Loading Tests > should not have loaded the third image after scrolling down (DD)
  • Image Component Tests > production mode > SSR Lazy Loading Tests > should load the third image, which is unoptimized, after scrolling further down (DD)
  • Image Component Tests > production mode > SSR Lazy Loading Tests > should load the fourth image lazily after scrolling down (DD)
  • Image Component Tests > production mode > SSR Lazy Loading Tests > should load the fifth image eagerly, without scrolling (DD)
  • Image Component Tests > production mode > SSR Lazy Loading Tests > should load the sixth image, which has lazyBoundary property after scrolling down (DD)
Expand output

● Image Component Tests › production mode › SSR Image Component Tests › should render an image tag

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should support passing through arbitrary attributes

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should modify src with the loader

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should correctly generate src even if preceding slash is included in prop

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should add a srcset based on the loader

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should add a srcset even with preceding slash in prop

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should use imageSizes when width matches, not deviceSizes from next.config.js

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should support the unoptimized attribute

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should not add a srcset if unoptimized attribute present

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should keep auto parameter if already set

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should keep width parameter if already set

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should keep fit parameter if already set

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should add a preload tag for a priority image

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should add a preload tag for a priority image with preceding slash

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should add a preload tag for a priority image, with arbitrary host

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should add a preload tag for a priority image, with quality

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should not create any preload tags higher up the page than CSS preload tags

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should add data-nimg data attribute based on layout

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Image Component Tests › should not pass config to custom loader prop

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  275 |       afterAll(() => killApp(app))
  276 |       describe('SSR Image Component Tests', () => {
> 277 |         beforeAll(async () => {
      |         ^
  278 |           browser = await webdriver(appPort, '/')
  279 |         })
  280 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:277:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:276:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › should render an image tag

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › should support passing through arbitrary attributes

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › should modify src with the loader

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › should correctly generate src even if preceding slash is included in prop

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › should add a srcset based on the loader

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › should add a srcset even with preceding slash in prop

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › should use imageSizes when width matches, not deviceSizes from next.config.js

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › should support the unoptimized attribute

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › should not add a srcset if unoptimized attribute present

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › should keep auto parameter if already set

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › should keep width parameter if already set

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › should keep fit parameter if already set

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › should NOT add a preload tag for a priority image

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › should only be loaded once if sizes is set

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › Client-side Errors › Should not log an error when an unregistered host is used in production

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  336 |       })
  337 |       describe('Client-side Image Component Tests', () => {
> 338 |         beforeAll(async () => {
      |         ^
  339 |           browser = await webdriver(appPort, '/')
  340 |           await browser.waitForElementByCss('#clientlink').click()
  341 |         })

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:338:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:337:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Image Component Tests › Client-side Errors › Should not log an error when an unregistered host is used in production

TypeError: Cannot read properties of null (reading 'eval')

  364 |         describe('Client-side Errors', () => {
  365 |           beforeAll(async () => {
> 366 |             await browser.eval(`(function() {
      |                           ^
  367 |           window.gotHostError = false
  368 |           const origError = console.error
  369 |           window.console.error = function () {

  at Object.eval (integration/next-image-legacy/basic/test/index.test.ts:366:27)

● Image Component Tests › production mode › SSR Lazy Loading Tests › should have loaded the first image immediately

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  383 |       })
  384 |       describe('SSR Lazy Loading Tests', () => {
> 385 |         beforeAll(async () => {
      |         ^
  386 |           browser = await webdriver(appPort, '/lazy')
  387 |         })
  388 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:385:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:384:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Lazy Loading Tests › should not have loaded the second image immediately

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  383 |       })
  384 |       describe('SSR Lazy Loading Tests', () => {
> 385 |         beforeAll(async () => {
      |         ^
  386 |           browser = await webdriver(appPort, '/lazy')
  387 |         })
  388 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:385:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:384:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Lazy Loading Tests › should pass through classes on a lazy loaded image

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  383 |       })
  384 |       describe('SSR Lazy Loading Tests', () => {
> 385 |         beforeAll(async () => {
      |         ^
  386 |           browser = await webdriver(appPort, '/lazy')
  387 |         })
  388 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:385:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:384:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Lazy Loading Tests › should load the second image after scrolling down

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  383 |       })
  384 |       describe('SSR Lazy Loading Tests', () => {
> 385 |         beforeAll(async () => {
      |         ^
  386 |           browser = await webdriver(appPort, '/lazy')
  387 |         })
  388 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:385:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:384:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Lazy Loading Tests › should not have loaded the third image after scrolling down

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  383 |       })
  384 |       describe('SSR Lazy Loading Tests', () => {
> 385 |         beforeAll(async () => {
      |         ^
  386 |           browser = await webdriver(appPort, '/lazy')
  387 |         })
  388 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:385:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:384:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Lazy Loading Tests › should load the third image, which is unoptimized, after scrolling further down

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  383 |       })
  384 |       describe('SSR Lazy Loading Tests', () => {
> 385 |         beforeAll(async () => {
      |         ^
  386 |           browser = await webdriver(appPort, '/lazy')
  387 |         })
  388 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:385:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:384:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Lazy Loading Tests › should load the fourth image lazily after scrolling down

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  383 |       })
  384 |       describe('SSR Lazy Loading Tests', () => {
> 385 |         beforeAll(async () => {
      |         ^
  386 |           browser = await webdriver(appPort, '/lazy')
  387 |         })
  388 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:385:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:384:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Lazy Loading Tests › should load the fifth image eagerly, without scrolling

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  383 |       })
  384 |       describe('SSR Lazy Loading Tests', () => {
> 385 |         beforeAll(async () => {
      |         ^
  386 |           browser = await webdriver(appPort, '/lazy')
  387 |         })
  388 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:385:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:384:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › SSR Lazy Loading Tests › should load the sixth image, which has lazyBoundary property after scrolling down

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  383 |       })
  384 |       describe('SSR Lazy Loading Tests', () => {
> 385 |         beforeAll(async () => {
      |         ^
  386 |           browser = await webdriver(appPort, '/lazy')
  387 |         })
  388 |         afterAll(async () => {

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:385:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:384:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Lazy Loading Tests › should have loaded the first image immediately

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  392 |       })
  393 |       describe('Client-side Lazy Loading Tests', () => {
> 394 |         beforeAll(async () => {
      |         ^
  395 |           browser = await webdriver(appPort, '/')
  396 |           await browser.waitForElementByCss('#lazylink').click()
  397 |           await waitFor(500)

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:394:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:393:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Lazy Loading Tests › should not have loaded the second image immediately

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  392 |       })
  393 |       describe('Client-side Lazy Loading Tests', () => {
> 394 |         beforeAll(async () => {
      |         ^
  395 |           browser = await webdriver(appPort, '/')
  396 |           await browser.waitForElementByCss('#lazylink').click()
  397 |           await waitFor(500)

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:394:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:393:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Lazy Loading Tests › should pass through classes on a lazy loaded image

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  392 |       })
  393 |       describe('Client-side Lazy Loading Tests', () => {
> 394 |         beforeAll(async () => {
      |         ^
  395 |           browser = await webdriver(appPort, '/')
  396 |           await browser.waitForElementByCss('#lazylink').click()
  397 |           await waitFor(500)

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:394:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:393:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Lazy Loading Tests › should load the second image after scrolling down

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  392 |       })
  393 |       describe('Client-side Lazy Loading Tests', () => {
> 394 |         beforeAll(async () => {
      |         ^
  395 |           browser = await webdriver(appPort, '/')
  396 |           await browser.waitForElementByCss('#lazylink').click()
  397 |           await waitFor(500)

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:394:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:393:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Lazy Loading Tests › should not have loaded the third image after scrolling down

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  392 |       })
  393 |       describe('Client-side Lazy Loading Tests', () => {
> 394 |         beforeAll(async () => {
      |         ^
  395 |           browser = await webdriver(appPort, '/')
  396 |           await browser.waitForElementByCss('#lazylink').click()
  397 |           await waitFor(500)

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:394:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:393:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Lazy Loading Tests › should load the third image, which is unoptimized, after scrolling further down

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  392 |       })
  393 |       describe('Client-side Lazy Loading Tests', () => {
> 394 |         beforeAll(async () => {
      |         ^
  395 |           browser = await webdriver(appPort, '/')
  396 |           await browser.waitForElementByCss('#lazylink').click()
  397 |           await waitFor(500)

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:394:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:393:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Lazy Loading Tests › should load the fourth image lazily after scrolling down

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  392 |       })
  393 |       describe('Client-side Lazy Loading Tests', () => {
> 394 |         beforeAll(async () => {
      |         ^
  395 |           browser = await webdriver(appPort, '/')
  396 |           await browser.waitForElementByCss('#lazylink').click()
  397 |           await waitFor(500)

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:394:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:393:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Lazy Loading Tests › should load the fifth image eagerly, without scrolling

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  392 |       })
  393 |       describe('Client-side Lazy Loading Tests', () => {
> 394 |         beforeAll(async () => {
      |         ^
  395 |           browser = await webdriver(appPort, '/')
  396 |           await browser.waitForElementByCss('#lazylink').click()
  397 |           await waitFor(500)

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:394:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:393:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

● Image Component Tests › production mode › Client-side Lazy Loading Tests › should load the sixth image, which has lazyBoundary property after scrolling down

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  392 |       })
  393 |       describe('Client-side Lazy Loading Tests', () => {
> 394 |         beforeAll(async () => {
      |         ^
  395 |           browser = await webdriver(appPort, '/')
  396 |           await browser.waitForElementByCss('#lazylink').click()
  397 |           await waitFor(500)

  at beforeAll (integration/next-image-legacy/basic/test/index.test.ts:394:9)
  at describe (integration/next-image-legacy/basic/test/index.test.ts:393:7)
  at integration/next-image-legacy/basic/test/index.test.ts:267:56
  at Object.describe (integration/next-image-legacy/basic/test/index.test.ts:266:1)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI approved Approve running CI for fork create-next-app Related to our CLI tool for quickly starting a new Next.js application. examples Issue was opened via the examples template. tests type: next type: react-sync

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants