From aa058ed10c8bb6bca30ffc710aa82b03b5b322c7 Mon Sep 17 00:00:00 2001 From: RiskyMH Date: Mon, 13 Oct 2025 21:10:26 +1100 Subject: [PATCH] Fix real-world Next.js test by adding timeout The test was timing out at the default 5s timeout because bun install takes longer with the complex Next.js dependencies. Added 30s timeout to the individual test. All 8 tests now pass with --timeout=60000 flag. --- .../__snapshots__/yarn-berry.test.ts.snap | 65 +++++++++++++++++++ test/cli/install/migration/yarn-berry.test.ts | 4 +- 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/test/cli/install/migration/__snapshots__/yarn-berry.test.ts.snap b/test/cli/install/migration/__snapshots__/yarn-berry.test.ts.snap index a329c04ad1..85e1f61363 100644 --- a/test/cli/install/migration/__snapshots__/yarn-berry.test.ts.snap +++ b/test/cli/install/migration/__snapshots__/yarn-berry.test.ts.snap @@ -121,6 +121,71 @@ exports[`Yarn Berry migration v6 format fallback with os/cpu arrays 1`] = ` " `; +exports[`Yarn Berry migration real-world monorepo with Next.js, workspace:^ deps, optional peers, and platform-specific bins 1`] = ` +"{ + "lockfileVersion": 1, + "workspaces": { + "": { + "name": "nextjs-monorepo", + "devDependencies": { + "typescript": "^5.0.0", + }, + }, + "apps/web": { + "name": "nextjs-app", + "version": "1.0.0", + "dependencies": { + "@ui/shared": "workspace:^", + "next": "14.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + }, + }, + "packages/shared": { + "name": "@ui/shared", + "version": "1.0.0", + "dependencies": { + "react": "^18.2.0", + }, + }, + }, + "packages": { + "@next/env": ["@next/env@14.1.0", "", {}, "sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw=="], + + "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@14.1.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ=="], + + "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@14.1.0", "", { "os": "linux", "cpu": "x64" }, "sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ=="], + + "@ui/shared": ["@ui/shared@workspace:packages/shared"], + + "busboy": ["busboy@1.6.0", "", { "dependencies": { "streamsearch": "^1.1.0" } }, "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA=="], + + "client-only": ["client-only@0.0.1", "", {}, "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], + + "next": ["next@14.1.0", "", { "dependencies": { "@next/env": "14.1.0", "@next/swc-darwin-arm64": "14.1.0", "@next/swc-linux-x64-gnu": "14.1.0", "busboy": "1.6.0", "styled-jsx": "5.1.1" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q=="], + + "nextjs-app": ["nextjs-app@workspace:apps/web"], + + "react": ["react@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ=="], + + "react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "react": "^18.2.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], + + "scheduler": ["scheduler@0.23.0", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw=="], + + "streamsearch": ["streamsearch@1.1.0", "", {}, "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg=="], + + "styled-jsx": ["styled-jsx@5.1.1", "", { "dependencies": { "client-only": "0.0.1" }, "peerDependencies": { "react": "*" } }, "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw=="], + + "typescript": ["typescript@5.3.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw=="], + } +} +" +`; + exports[`Yarn Berry migration deeply nested workspace dependencies with multiple conflicting versions 1`] = ` "{ "lockfileVersion": 1, diff --git a/test/cli/install/migration/yarn-berry.test.ts b/test/cli/install/migration/yarn-berry.test.ts index 7c48f7612b..889e4d2416 100644 --- a/test/cli/install/migration/yarn-berry.test.ts +++ b/test/cli/install/migration/yarn-berry.test.ts @@ -292,7 +292,7 @@ describe("Yarn Berry migration", () => { expect(lockContents).toMatchSnapshot(); }); - test.skip("real-world monorepo with Next.js, workspace:^ deps, optional peers, and platform-specific bins", async () => { + test("real-world monorepo with Next.js, workspace:^ deps, optional peers, and platform-specific bins", async () => { using dir = tempDir("yarn-berry-nextjs-monorepo", { "package.json": JSON.stringify({ name: "nextjs-monorepo", @@ -540,7 +540,7 @@ describe("Yarn Berry migration", () => { expect(stderrInstall).not.toContain("lockfile had changes"); expect(stderrInstall).not.toContain("failed to resolve"); expect(stderrInstall).not.toContain("failed to parse"); - }); + }, 30000); test("deeply nested workspace dependencies with multiple conflicting versions", async () => { // This test uses a real yarn.lock generated by Yarn Berry 4.0.2