feat: parse project metadata from PF links
This commit is contained in:
@@ -65,3 +65,41 @@ func TestValidateProjectRequiredRejectsListingLikeURLWithoutID(t *testing.T) {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestApplyParsedOwnListingFillsProjectMetadata(t *testing.T) {
|
||||
payload := ProjectPayload{
|
||||
Title: "Full Park View",
|
||||
DealType: "sale",
|
||||
OurURL: strPtr(
|
||||
"https://www.propertyfinder.ae/en/plp/buy/apartment-for-sale-dubai-dubai-creek-harbour-the-lagoons-harbour-gate-harbour-gate-tower-2-86176216.html",
|
||||
),
|
||||
}
|
||||
parsed := &ParsedOwnListing{
|
||||
OurPrice: float64Ptr(3500000),
|
||||
DLDPermit: strPtr("7140504127"),
|
||||
Building: strPtr("Harbour Gate Tower 2"),
|
||||
Bedrooms: int64Ptr(2),
|
||||
SizeSqft: float64Ptr(1081),
|
||||
}
|
||||
|
||||
payload = applyParsedOwnListing(payload, parsed)
|
||||
|
||||
if err := validateProjectRequired(payload); err != nil {
|
||||
t.Fatalf("validateProjectRequired() after parsed metadata returned error: %v", err)
|
||||
}
|
||||
if payload.OurPrice == nil || *payload.OurPrice != 3500000 {
|
||||
t.Fatalf("our_price was not applied: %#v", payload.OurPrice)
|
||||
}
|
||||
if payload.DLDPermit == nil || *payload.DLDPermit != "7140504127" {
|
||||
t.Fatalf("dld_permit was not applied: %#v", payload.DLDPermit)
|
||||
}
|
||||
if payload.Building == nil || *payload.Building != "Harbour Gate Tower 2" {
|
||||
t.Fatalf("building was not applied: %#v", payload.Building)
|
||||
}
|
||||
if payload.Bedrooms == nil || *payload.Bedrooms != 2 {
|
||||
t.Fatalf("bedrooms was not applied: %#v", payload.Bedrooms)
|
||||
}
|
||||
if payload.SizeSqft == nil || *payload.SizeSqft != 1081 {
|
||||
t.Fatalf("size_sqft was not applied: %#v", payload.SizeSqft)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user