test(windows): use pnpm.cmd in integration builds

This commit is contained in:
Peter Steinberger 2025-12-29 23:30:07 +01:00
parent 522276c599
commit 3f654d1ae9
3 changed files with 6 additions and 3 deletions

View File

@ -17,10 +17,11 @@ const testRequire = createRequire(import.meta.url);
const MCP_SERVER_MODULE = pathToFileURL(testRequire.resolve('@modelcontextprotocol/sdk/server/mcp.js')).href;
const STDIO_SERVER_MODULE = pathToFileURL(testRequire.resolve('@modelcontextprotocol/sdk/server/stdio.js')).href;
const ZOD_MODULE = pathToFileURL(path.join(process.cwd(), 'node_modules', 'zod', 'index.js')).href;
const PNPM_COMMAND = process.platform === 'win32' ? 'pnpm.cmd' : 'pnpm';
async function ensureDistBuilt(): Promise<void> {
await new Promise<void>((resolve, reject) => {
execFile('pnpm', ['build'], { cwd: process.cwd(), env: process.env }, (error) => {
execFile(PNPM_COMMAND, ['build'], { cwd: process.cwd(), env: process.env }, (error) => {
if (error) {
reject(error);
return;

View File

@ -12,6 +12,7 @@ const MCP_SERVER_MODULE = pathToFileURL(testRequire.resolve('@modelcontextprotoc
const STDIO_SERVER_MODULE = pathToFileURL(testRequire.resolve('@modelcontextprotocol/sdk/server/stdio.js')).href;
const ZOD_MODULE = pathToFileURL(testRequire.resolve('zod')).href;
const describeDaemon = process.platform === 'win32' ? describe.skip : describe;
const PNPM_COMMAND = process.platform === 'win32' ? 'pnpm.cmd' : 'pnpm';
async function readFileWithRetries(filePath: string, retries = 20, delayMs = 100): Promise<string> {
let lastError: unknown;
@ -34,7 +35,7 @@ async function ensureDistBuilt(): Promise<void> {
await fs.access(CLI_ENTRY);
} catch {
await new Promise<void>((resolve, reject) => {
execFile('pnpm', ['build'], { cwd: process.cwd(), env: process.env }, (error) => {
execFile(PNPM_COMMAND, ['build'], { cwd: process.cwd(), env: process.env }, (error) => {
if (error) {
reject(error);
return;

View File

@ -7,13 +7,14 @@ import { fileURLToPath } from 'node:url';
import { afterAll, beforeAll, describe, expect, it } from 'vitest';
const CLI_ENTRY = fileURLToPath(new URL('../dist/cli.js', import.meta.url));
const PNPM_COMMAND = process.platform === 'win32' ? 'pnpm.cmd' : 'pnpm';
async function ensureDistBuilt(): Promise<void> {
try {
await fs.access(CLI_ENTRY);
} catch {
await new Promise<void>((resolve, reject) => {
execFile('pnpm', ['build'], { cwd: process.cwd(), env: process.env }, (error) => {
execFile(PNPM_COMMAND, ['build'], { cwd: process.cwd(), env: process.env }, (error) => {
if (error) {
reject(error);
return;