Ready-to-run batch files for the batch runner, grouped into four families - each answering a different question. The JSON files live under pax/, route/, market/, and misc/ subfolders; the reference docs (pax.md, route.md, market.md) stay at the top of this directory.
docs/examples/batch/
├── README.md ← you are here
├── pax.md ← reference for the pax/ family
├── route.md ← reference for the route/ family
├── market.md ← reference for the market/ family
├── pax/*.json
├── route/*.json
├── market/*.json
└── misc/*.json ← smoke + snap/unallocated/productFamily
| Family | What it varies | What it pins | Use when you want to know… |
|---|---|---|---|
misc/smoke.json |
Everything | Dry-run only | "Does the batch runner itself still work?" One file, mixed bookings, safe to run anywhere. |
misc/snap.json |
Booking mode × market × pax | Dry-run only | "Do --snap, --unallocated, and --product-family still book end-to-end across markets and pax types?" |
pax/ |
Destination (every carrier combo) | One pax + class | "Does this passenger type still book on every carrier?" - pax.md |
route/ |
Pax × class matrix | One OD / carrier combo | "How does this carrier behave across pax and classes?" - route.md |
market/ |
A fixed 4-booking sample | One market (language + currency) | "Does this market still work end-to-end across varied pax/routes?" - market.md |
# Smoke test - safe, dry-run
bun book --batch docs/examples/batch/misc/smoke.json
# Snap / unallocated / productFamily across markets and pax types
bun book --batch docs/examples/batch/misc/snap.json
# Single pax type across every carrier combo
bun book --batch docs/examples/batch/pax/1a-std.json
# Single route across every pax × class combo
bun book --batch docs/examples/batch/route/lon-par.json
# One market, varied bookings
bun book --batch docs/examples/batch/market/fr-fr.json
Results land next to each JSON file (foo.json → foo.csv).
# Every pax file (9 files × 13 destinations = 117 bookings)
for f in docs/examples/batch/pax/*.json; do bun book --batch "$f"; done
# Every route file (9 files × 12 combos = 108 bookings)
for f in docs/examples/batch/route/*.json; do bun book --batch "$f"; done
# Every market file (8 files × 4 bookings = 32 bookings)
for f in docs/examples/batch/market/*.json; do bun book --batch "$f"; done
misc/smoke.json - mixed bookings, all dry-run. Good first test after editing batch.ts or the parser. Includes one snap row (lon-par) and one unallocated row (par-bxl).misc/snap.json - snap (lon-par / par-lon only), unallocated (par-bxl / bxl-par only), and productFamily rows across uk-en / fr-fr / nl-nl / be-fr / be-nl markets and varied pax types. Dry-run. Use this to verify the new modes after refactors.pax/1a-std.json - 1 adult, STDpax/1a-plus.json - 1 adult, PLUSpax/1a-premier.json - 1 adult, PREMIERpax/2a-2c-std.json - 2 adults + 2 children, STDpax/2a-2c-plus.json - 2 adults + 2 children, PLUSpax/2a-2c-premier.json - 2 adults + 2 children, PREMIERpax/wheelchair.json - 1 adult wheelchair, solo, STDpax/wheelchair-adult-comp.json - 1 adult wheelchair + companion, STDpax/wheelchair-child-comp.json - 1 child wheelchair + companion, STDroute/lon-par.json - ES direct (London → Paris)route/lon-ams.json - ER direct (London → Amsterdam)route/sncf.json - ES + SNCF (London → Marseille)route/sncb.json - ES + SNCB (London → Bruges)route/db.json - DB + ER (Frankfurt → London)route/lon-col.json - ES + DB (London → Cologne)route/par-bru.json - ER-only (Paris → Brussels)route/par-ams.json - ER-only (Paris → Amsterdam)route/par-col.json - ER + DB (Paris → Cologne)market/uk-en.json - UK · GBP · Englishmarket/fr-fr.json - France · EUR · Frenchmarket/be-fr.json - Belgium · EUR · Frenchmarket/be-en.json - Belgium · EUR · Englishmarket/be-nl.json - Belgium · EUR · Dutchmarket/de-de.json - Germany · EUR · Germanmarket/nl-nl.json - Netherlands · EUR · Dutchmarket/us-en.json - United States · USD · Englishmarket/rw-en.json - Rest of world · USD · English