diff --git a/tests/laravel.ts b/tests/laravel.ts index 9098fc2b..d422afb1 100644 --- a/tests/laravel.ts +++ b/tests/laravel.ts @@ -1,5 +1,7 @@ import { runInRepo } from '../utils.ts' import type { RunOptions } from '../types.d.ts' +import path from 'node:path' +import fs from 'node:fs' export async function test(options: RunOptions) { //see https://github.com/laravel/vite-plugin/blob/73466441b0c9eb0c1a5ce0a0e937bd83eaef4b70/.github/workflows/tests.yml#L10 @@ -7,8 +9,35 @@ export async function test(options: RunOptions) { await runInRepo({ ...options, repo: 'laravel/vite-plugin', - branch: '1.x', + branch: '2.x', build: 'build', + async beforeTest() { + // Add `vitest.config.ts` to exclude Vite from inlined by Vitest. + // Otherwise the mock here doesn't work. + // https://github.com/laravel/vite-plugin/blob/3f7bf9eddc69580796c26890c99065d7259c785e/tests/index.test.ts#L7-L22 + const dir = path.resolve(options.workspace, 'vite-plugin') + const vitestConfigFile = path.join(dir, 'vitest.config.ts') + fs.writeFileSync( + vitestConfigFile, + getVitestConfig(options.vitePath), + 'utf-8', + ) + }, test: 'test', + agent: 'npm', }) } + +const getVitestConfig = (viteRepoPath: string) => /* ts */ ` +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + deps: { + moduleDirectories: [ + ${JSON.stringify(path.resolve(viteRepoPath, 'packages'))}, + ], + }, + }, +}); +` diff --git a/utils.ts b/utils.ts index 55ef8ced..7cf35596 100644 --- a/utils.ts +++ b/utils.ts @@ -352,7 +352,7 @@ export async function runInRepo(options: RunOptions & RepoOptions) { ...localOverrides, } } - await applyPackageOverrides(dir, pkg, overrides) + await applyPackageOverrides(agent, dir, pkg, overrides) await beforeBuildCommand?.(pkg.scripts) await buildCommand?.(pkg.scripts) if (test) { @@ -525,6 +525,7 @@ async function overridePackageManagerVersion( } export async function applyPackageOverrides( + agent: (typeof AGENTS)[number], dir: string, pkg: any, overrides: Overrides = {}, @@ -540,10 +541,6 @@ export async function applyPackageOverrides( ) await $`git clean -fdxq` // remove current install - const agent = await detect({ cwd: dir, autoInstall: false }) - if (!agent) { - throw new Error(`failed to detect packageManager in ${dir}`) - } // Remove version from agent string: // yarn@berry => yarn // pnpm@6, pnpm@7 => pnpm