From 574cc7d0d20833eab545eb62a1f0eb5d62b79405 Mon Sep 17 00:00:00 2001
From: Wojciech Maj <kontakt@wojtekmaj.pl>
Date: Tue, 5 Dec 2023 11:24:55 +0100
Subject: [PATCH] fix: fix ensurePackageInstalled on Yarn PnP (#4657)

---
 packages/vitest/src/node/pkg.ts | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/packages/vitest/src/node/pkg.ts b/packages/vitest/src/node/pkg.ts
index 642378033868..783264b9c6e3 100644
--- a/packages/vitest/src/node/pkg.ts
+++ b/packages/vitest/src/node/pkg.ts
@@ -1,4 +1,5 @@
 import url from 'node:url'
+import { createRequire } from 'node:module'
 import c from 'picocolors'
 import { isPackageExists } from 'local-pkg'
 import { EXIT_CODE_RESTART } from '../constants'
@@ -10,6 +11,16 @@ export async function ensurePackageInstalled(
   dependency: string,
   root: string,
 ) {
+  if (process.versions.pnp) {
+    const targetRequire = createRequire(__dirname)
+    try {
+      targetRequire.resolve(dependency, { paths: [root, __dirname] })
+      return true
+    }
+    catch (error) {
+    }
+  }
+
   if (isPackageExists(dependency, { paths: [root, __dirname] }))
     return true