MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / startPlainViteDev

Function startPlainViteDev

e2e/local/vite-dev-routing.test.ts:79–117  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

77}
78
79const startPlainViteDev = async (): Promise<ViteDev> => {
80 const dataDir = mkdtempSync(join(tmpdir(), "executor-local-vite-e2e-"));
81 const port = await freePort();
82 const origin = `http://127.0.0.1:${port}`;
83 let logs = "";
84 const child = spawn(
85 "bunx",
86 ["--bun", "vite", "dev", "--host", "127.0.0.1", "--port", String(port), "--strictPort"],
87 {
88 cwd: localAppDir,
89 env: { ...process.env, EXECUTOR_DATA_DIR: dataDir, PORT: String(port) },
90 stdio: ["ignore", "pipe", "pipe"],
91 detached: true,
92 },
93 );
94 child.stdout?.on("data", (chunk: Buffer) => {
95 logs += chunk.toString();
96 });
97 child.stderr?.on("data", (chunk: Buffer) => {
98 logs += chunk.toString();
99 });
100
101 try {
102 await waitForHttp(origin, { timeoutMs: 90_000 });
103 const token = await readToken(dataDir);
104 return {
105 origin,
106 token,
107 stop: async () => {
108 await stopTree(child);
109 rmSync(dataDir, { recursive: true, force: true });
110 },
111 };
112 } catch (error) {
113 await stopTree(child);
114 rmSync(dataDir, { recursive: true, force: true });
115 throw new Error(`plain Vite dev failed to boot:\n${logs}\n${String(error)}`);
116 }
117};
118
119scenario(
120 "Local Vite dev · local-only API routes match production routing",

Callers 1

Calls 5

waitForHttpFunction · 0.90
stopTreeFunction · 0.85
toStringMethod · 0.80
freePortFunction · 0.70
readTokenFunction · 0.70

Tested by

no test coverage detected