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.