Faza 8 — Proof-runner: Campanie + Formular + Donatie Offline (SureDonation)

Faza 8 — Proof-runner: Campanie + Formular Donație + Donație Offline (SureDonation)

Dovadă generată automat de proof-runner.js pentru capacitatea donatie_offline (vezi playbooks/capabilities/donatie-offline.json). Site de test dedicat: donations.safebiz.ro.

1. Campanie existentă găsită (read-only, NEATINSĂ de acest run)

GET /wp-json/suredonation/v1/campaigns a găsit campania #6 „Test for Safebiz” (autor: taki, creată 2026-07-13), campaign_status=active dar cu post_status=draft la nivel WP și has_page=false. Nu am modificat-o — nu e a noastră (fără owner marker). Blocurile de campanie de mai jos o referențiază DOAR pentru dovadă vizuală; pentru un vizitator anonim vor apărea goale, pentru că Campaign_Page::resolve_campaign_id() impune post_status=publish sau current_user_can('edit_post') — limitare de cod, nu bug.

2. Formular de donație — câmpuri funcționale (randare statică, fără CPT „formular” real)

Gotcha structural confirmat în această rulare: proof-runner.js ensure-post/ensure-page scriu DOAR pe /wp-json/wp/v2/posts și /wp-json/wp/v2/pages (hard-codat în CLI). Rutele native suredonation/v1/campaigns, /campaigns/{id}/page, /forms, /donations NU sunt în playbooks/adapters.json (doar adapters.candidates.json, nepromovat) și NU apar în automation-policy.allowed_write_routes (doar rutele admin de plăți + wp/v2/posts,pages sunt aprobate de taki). Deci NU pot crea prin proof-runner un formular real (suredonation_form CPT) sau o campanie nouă publicată — ar necesita promovarea rutelor (generate-adapters + revizuire umană), pas care nu a fost făcut încă pentru aceste 3 rute. Câmpurile de mai jos sunt blocurile individuale ale formularului (randează independent de formId, cf. Email_Markup/Donation_Amount_Markup/Payment_Markup din cod) — arată vizual formularul de donație, dar nu sunt legate de o campanie/formular live.

Donează pentru Reabilitare Adăpost

Payment gateways are not configured. Please contact the site administrator.

3. Donație offline de test — payload documentat (NU trimis live)

POST /wp-json/suredonation/v1/donations nu e o rută disponibilă prin proof-runner (vezi gotcha de mai sus) — payload-ul de mai jos e cel definit în capabilities/donatie-offline.json (pasul create_offline_donation), documentat aici ca dovadă a datelor de test, NU ca donație efectiv înregistrată în DB:

{
  "campaign_id": 6,
  "donor_name": "Ion Popescu",
  "donor_email": "test-donor@safebiz.ro",
  "amount": 100,
  "donation_type": "one-time",
  "is_anonymous": false,
  "donor_comment": "Donație test offline — proof-runner",
  "payment_status": "completed",
  "gateway": "offline"
}

Concluzie

Capacitatea donatie_offline rămâne unverified pentru fluxul complet API (campanie nouă publicată → formular implicit → donație offline reală în DB) — blocaj structural de politică/adaptoare, nu eroare de execuție. Formularul de donație (câmpurile individuale) RANDEAZĂ corect și vizual, confirmat prin captură de ecran. Pas următor pentru verificare completă: promovare rute suredonation/v1/campaigns, /campaigns/{id}/page, /forms, /donations din analiză în adapters.json + adăugare în automation-policy.allowed_write_routes (revizuire taki), apoi re-rulare cu proof-runner.js write --adapter.

Leave a Reply

Your email address will not be published. Required fields are marked *