trihub-ernaehrung-backseatDevs/src/tests/helpers/browser-server.js

24 lines
915 B
JavaScript

// Ausschließlich Testserver: temporäre CSV und simulierter Versand.
import { mkdtemp, rm } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { createApp } from "../../server/index.js";
import { createCsvStorage } from "../../server/services/csv-storage.js";
import { packages, demoPackages } from "../../shared/packages.js";
const directory = await mkdtemp(join(tmpdir(), "trihub-browser-"));
const server = createApp({
catalog: [...packages, ...demoPackages],
storage: createCsvStorage(join(directory, "bookings.csv")),
sendConfirmation: async () => {},
});
server.listen(3000, "127.0.0.1");
async function stop() {
server.closeAllConnections();
await new Promise((resolve) => server.close(resolve));
await rm(directory, { recursive: true, force: true });
process.exit(0);
}
process.on("SIGTERM", stop);
process.on("SIGINT", stop);