M9: create validated internal bookings

This commit is contained in:
NuklearRabbit
2026-08-10 02:20:28 +02:00
parent c194c18ca9
commit e577c16db5
3 changed files with 88 additions and 0 deletions
+22
View File
@@ -20,6 +20,28 @@ def test_list_bookings_supports_bounded_search_pages(ops_client):
assert len(body["items"]) == 25
def test_create_booking_rejects_overlap_and_audits_valid_booking(ops_client):
conflict = ops_client.post(
"/api/v1/bookings",
json={
"customer_ref": "CUS-0001", "vehicle_ref": "MO-024",
"starts_at": "2026-08-10T10:00:00Z", "ends_at": "2026-08-10T12:00:00Z",
},
)
assert conflict.status_code == 409
created = ops_client.post(
"/api/v1/bookings",
json={
"customer_ref": "CUS-0001", "vehicle_ref": "MO-001",
"starts_at": "2026-09-01T10:00:00Z", "ends_at": "2026-09-02T12:00:00Z",
},
)
assert created.status_code == 201
body = created.json()
assert body["status"] == "reserved"
assert body["vehicle_ref"] == "MO-001"
def test_get_booking_detail(ops_client):
response = ops_client.get("/api/v1/bookings/BK-DEMO-RETURN")
assert response.status_code == 200