2.6 KiB
2.6 KiB
Phase 102-01 — Apaczka Receiver Street Length
Status: Complete Date: 2026-04-14
What Was Built
Naprawiono blad HTTP 400 z API Apaczka: receiver.street must be between 0 and 30 przy tworzeniu przesylki.
Strategia zalezna od typu uslugi
- Uslugi punktowe (
receiver_point_id !== ''— ORLEN Paczka, Paczkomat): auto-truncate street do 30 znakow przeztruncateStreetForPoint()(mb_substr UTF-8 + rtrim). - Uslugi kurierskie (brak
receiver_point_id):assertStreetWithinCourierLimit()rzucaShipmentExceptionz komunikatem po polsku zawierajacym dlugosc i pelna wartosc — operator skraca recznie, zeby nie uciac numeru domu/mieszkania.
Files Modified
src/Modules/Shipments/ApaczkaShipmentService.phpbuildReceiverAddress()— dodano gałąź zaleznie od$receiverPointId- Nowe metody:
truncateStreetForPoint(string): string,assertStreetWithinCourierLimit(string): void
tests/Unit/ApaczkaShipmentServiceTest.php(nowy plik, 8 test cases)
Decisions
ShipmentExceptionzamiastApaczkaApiException— klasa serwisu juz importujeShipmentExceptioni uzywa go spojnie. Dodawanie kolejnego typu bez powodu byloby niekonsystentne. Wyjatek propaguje przezShipmentControllerdo UI tak samo jak inne bledy przygotowania przesylki.- Brak auto-fallback na line2 — prosciej i bezpieczniej wymusic recznie skrocenie przez operatora niz zgadywac, jak podzielic adres (ryzyko utraty informacji dla kuriera).
Tests
PHPUnit 11.5.55 — OK (8 tests, 15 assertions)
Test cases:
truncateStreetForPoint— long value → ≤30 znakow, zaczyna sie od oryginalutruncateStreetForPoint— short value (Polna 5) → bez zmiantruncateStreetForPoint— boundary 30 znakow → bez zmiantruncateStreetForPoint— UTF-8 (polskie znaki) → mb_check_encoding OKtruncateStreetForPoint— rtrim trailing spaceassertStreetWithinCourierLimit— short acceptassertStreetWithinCourierLimit— boundary 30 acceptassertStreetWithinCourierLimit— 42-znakowy adres → ShipmentException z "przekracza 30 znakow"
AC Status
- AC-1: Usluga punktowa + dlugi street → truncate do ≤30
- AC-2: Usluga kurierska + dlugi street → ShipmentException
- AC-3: Krotki street (<=30) → bez zmian
- AC-4: Boundary 30 → bez zmian
- AC-5: Unit testy zielone
Manual Re-test
- Zamowienie 372 (Klaudia Florek-Mach, ORLEN Paczka, customer street 42 znaki): nalezy przetestowac w UI — oczekiwane: przesylka tworzona pomyslnie (sciezka point-truncate).
- Zamowienie kurierskie z dlugim street: oczekiwane — widoczny komunikat walidacji z zachetą do skrócenia adresu.