Sub-task EP-10-T05-S08 O'rta 05_customers erpbom-backend

DecimalRangeValidator: kasr xonasi kontrakt bilan qatiy mos bolsin

Bajarildi
Status:

Tavsif

QA kuzatuvi (EP-10-T05-S07, bloklamagan): DecimalRangeValidator kasr xonasini stripTrailingZeros() dan KEYIN sanaydi, shuning uchun lat=41.1000000 (7 kasr xona) 400 bermaydi — API muzlatilgan kontrakt taqiqlagan qiymatni qabul qiladi. DB numeric(9,6) bolgani uchun qiymat 6 xonaga normallashadi, lekin yaratish javobi JPA dagi xom qiymatni qaytarishi mumkin — u holda javob ozining kontrakt patterniga mos kelmaydi. Tuzatish: xom value.scale() bilan tekshirish.

Qabul mezonlari (DoD)

4 / 4 bajarildi

  • lat yoki lng da 6 dan ortiq kasr xona bolsa (oxirgi nollar bilan ham: 41.1000000) POST va PUT 400 qaytaradi

    qa-ep-10-t05-s08 · 1 о аввал

  • 6 va undan kam kasr xona (41.1, 41.100000, -0.000001) qabul qilinadi — regressiya yoq

    qa-ep-10-t05-s08 · 1 о аввал

  • Tuzatish mutatsiya bilan tasdiqlangan: strict tekshiruv olib tashlansa yangi test qizaradi

    qa-ep-10-t05-s08 · 1 о аввал

  • customers va orders paketi testlari yashil; kontrakt (openapi/) tegilmagan

    qa-ep-10-t05-s08 · 1 о аввал

O'zgargan fayllar

4 ta

  • modified src/test/java/uz/erpbom/customers/controller/CustomerQueryTest.java
  • modified src/test/java/uz/erpbom/customers/controller/CustomerCreateTest.java
  • modified src/main/java/uz/erpbom/customers/dto/DecimalRangeValidator.java
  • modified src/main/java/uz/erpbom/customers/dto/DecimalRange.java

Izoh qoldirish

Tarix

13 yozuv

  • ✎

    finalize-ep-10 yangiladi

    Yangilandi: commit_sha, pr_url

  • ⇄

    qa-ep-10-t05-s08 statusni o'zgartirdi Review → Bajarildi

  • 💬

    qa-ep-10-t05-s08 izoh qoldirdi

    QA OK (b200638). Testlar (izolyatsiyalangan worktree, b200638): CustomerCreateTest 30 + CustomerQueryTest 25 = 55 yashil; orders: OrderListControllerTest 14 + OrderCreateControllerTest 11 + OrderConfirmDeliveryControllerTest 14 = 39 yashil. MUTATSIYA (worktree, javap bilan bytecode tasdiqlangan): - M1 `Math.max(value.scale(),0)` -> `value.stripTrailingZeros().scale()` (eski buzuq xatti-harakat): 4 test QIZARDI — creating...Lat/LngSevenDecimalsTrailingZeros (POST) va update...Lat/LngSevenDecimalsTrailingZeros (PUT). Yani PUT yoli ham haqiqatan qamralgan. - M2 `<= scale` -> `<= scale + 1`: 8 test QIZARDI (S07 ning 4 ta 7-xona testi + S08 ning 4 tasi). Mutantlar cp .orig bilan tiklandi, `grep -rn MUTANT src/` bosh, worktree ochirildi, asosiy daraxt toza. Fixture xilma-xilligi tekshirildi — qiymatlar qotib qolmagan: rad 41.1000000 / 69.2400000 / 41.1234567 / 69.2405621; qabul 41.1 (1 xona), 41.100000+69.240000 (aynan 6, nol bilan), -0.000001, butun 41/69 (scale 0), chegara 90/180 va -90/-180 (creatingCustomerAcceptsInclusiveBoundaryCoordinates yashil). lat va lng alohida-alohida buziladi (ikkinchi maydon doim togri) — bir tomonlama mutant ham ushlanadi. Kontrakt: b200638 openapi/ ga TEGMAGAN (git show --stat da 0 fayl); `git diff cbecc07 b200638 -- openapi/` bosh. Xatolik kodi VALIDATION_ERROR/400 kontraktga mos. KUZATUV (bloklamaydi, AC doirasidan tashqari, S08 dan OLDIN ham bor edi): eksponent yozuv (mas. lat="4.1E+1") BigDecimal.scale() = -1 beradi -> Math.max(...,0)=0 -> QABUL qilinadi, kontrakt pattern esa uni rad etadi. Mezonlar kasr xona SONI haqida bolgani uchun bu leaf qaytarilmadi; kerak bolsa alohida barg.

  • ✓

    qa-ep-10-t05-s08 qabul mezonini belgiladi

    ✓ customers va orders paketi testlari yashil; kontrakt (openapi/) tegilmagan

  • ✓

    qa-ep-10-t05-s08 qabul mezonini belgiladi

    ✓ Tuzatish mutatsiya bilan tasdiqlangan: strict tekshiruv olib tashlansa yangi test qizaradi

  • ✓

    qa-ep-10-t05-s08 qabul mezonini belgiladi

    ✓ 6 va undan kam kasr xona (41.1, 41.100000, -0.000001) qabul qilinadi — regressiya yoq

  • ✓

    qa-ep-10-t05-s08 qabul mezonini belgiladi

    ✓ lat yoki lng da 6 dan ortiq kasr xona bolsa (oxirgi nollar bilan ham: 41.1000000) POST va PUT 400 qaytaradi

  • ⇄

    coder-ep-10-t05-s08 statusni o'zgartirdi Ishlanyapti → Review

  • ✎

    coder-ep-10-t05-s08 yangiladi

    Yangilandi: branch, commit_sha

  • 📄

    coder-ep-10-t05-s08 fayllarni qayd etdi

    4 ta fayl qayd etildi

  • ⇄

    coder-ep-10-t05-s08 statusni o'zgartirdi Backlog → Ishlanyapti

    Agent ishni boshladi

  • ⚑

    coder-ep-10-t05-s08 ishga oldi

  • ✦

    team-lead-pm yaratdi

    DecimalRangeValidator: kasr xonasi kontrakt bilan qatiy mos bolsin

Ma'lumot

Agent
coder-ep-10-t05-s08
Olingan
1 о аввал
Boshlandi
03.09.2026 07:57
Tugadi
03.09.2026 08:29
Baho
1 soat
Spec
openapi/v1/customers.yaml (commit cbecc07) — lat/lng pattern, kasr <=6 xona
Branch
feat/EP-10-erpbom-backend
Commit
b6a7516c9f5d

Bog'liqliklar

Bundan oldin tugashi kerak

Yo'q — bu ish mustaqil.

Agent uchun

Bu ishni AI agent quyidagicha oladi:

curl -s -X POST https://pmboard.ferp.uz/api/items/EP-10-T05-S08/claim \
  -H "X-Agent: backend-dev-1"

Tugatgach:

curl -s -X POST https://pmboard.ferp.uz/api/items/EP-10-T05-S08/status \
  -H "X-Agent: backend-dev-1" \
  -H "Content-Type: application/json" \
  -d '{"status":"review","note":"..."}'