vitest-e2e
Version:
vitest e2e utils
66 lines (63 loc) • 1.61 kB
JavaScript
import './chunk-7WPVDEFB.js';
import { rootDir } from './chunk-7M6DEYMT.js';
import { isBuild } from './chunk-JXTCPVDR.js';
import kill from 'kill-port';
import path from 'node:path';
var viteServer;
var port = 5173;
var hmrPort = 24685;
async function serve() {
if (isBuild) {
const { build } = await import('vite');
await build({
root: rootDir,
logLevel: "silent",
// exceptions are logged by Vitest
build: {
target: "esnext",
minify: false,
ssrManifest: true,
outDir: "dist/client"
}
});
await build({
root: rootDir,
logLevel: "silent",
build: {
target: "esnext",
ssr: "src/entry-server.tsx",
outDir: "dist/server",
rollupOptions: {
output: {
entryFileNames: "entry-server.js"
}
}
}
});
}
await kill(port);
const { createServer } = await import(path.resolve(rootDir, "server.js"));
const { app, vite } = await createServer(rootDir, isBuild, hmrPort);
viteServer = vite;
return new Promise((resolve, reject) => {
try {
const server = app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
resolve({
// for test teardown
async close() {
await new Promise((resolve2) => {
server.close(resolve2);
});
if (vite) {
await vite.close();
}
}
});
});
} catch (e) {
reject(e);
}
});
}
export { hmrPort, port, serve, viteServer };