/** * Concurrent smoke test: 10 parallel calls to generateQuoteNumberServer * must produce 10 unique, contiguous quote numbers (no collisions). */ import { generateQuoteNumberServer } from "../../src/lib/server/quotes-service"; async function main() { const calls = Array.from({ length: 10 }, () => generateQuoteNumberServer()); const results = await Promise.all(calls); console.log("Generated:", results); const set = new Set(results); if (set.size !== results.length) { console.error(`FAIL — got ${results.length} results but only ${set.size} unique`); process.exit(1); } // Numbers must be contiguous (Q-2026-06-004..013, since -001..-003 are taken) const seqs = results .map((r) => Number(r.match(/Q-\d{4}-\d{2}-(\d{3})$/)![1])) .sort((a, b) => a - b); for (let i = 0; i < seqs.length; i += 1) { if (seqs[i] !== seqs[0] + i) { console.error(`FAIL — non-contiguous sequence: ${seqs.join(",")}`); process.exit(1); } } console.log("OK — 10 concurrent calls, all unique and contiguous."); } main().catch((err) => { console.error(err); process.exit(1); });