import pytest from pydantic import ValidationError from app.schemas import LeadCreateIn def test_lead_phone_is_normalized(): lead = LeadCreateIn(phone=" 187 8617 4929 ") assert lead.phone == "187 8617 4929" def test_vehicle_lead_normalizes_nested_demand(): lead = LeadCreateIn( leadType="vehicle", contactName=" Damon ", phone=" 13800000000 ", vehicleDemand={ "serviceType": "charter", "charterDuration": "fullDay", "travelDate": "2026-08-25", "pickupTime": "09:00", "pickupLocation": " 贵阳北站 ", "dropoffLocation": " 黄果树景区 ", "peopleCount": 5, "luggageCount": 3, "vehicleOptionId": "vehicle-option-uuid", "vehicleOptionTitle": "多人商务车", "specialRequirements": " 需要儿童座椅 ", }, sourcePage="home-vehicle", ) assert lead.leadType == "vehicle" assert lead.contactName == "Damon" assert lead.vehicleDemand.travelDate.isoformat() == "2026-08-25" assert lead.vehicleDemand.pickupLocation == "贵阳北站" assert lead.vehicleDemand.specialRequirements == "需要儿童座椅" def test_vehicle_lead_requires_vehicle_demand(): with pytest.raises(ValidationError): LeadCreateIn(leadType="vehicle", phone="13800000000") def test_generic_lead_remains_guest_compatible(): lead = LeadCreateIn(phone="13800000000", destination="贵州") assert lead.leadType == "general" assert lead.vehicleDemand is None