# Raport testimi — Pesyje Support Profile V1

Data: 28 shtator 2026  
Baza e patch-it: `V28.1.zip`, tema `ayline`  
Përfundim: kontrollet e përshkruara më poshtë kaluan lokalisht.

| Kontrolli | Rezultati |
|---|---|
| Aplikacioni: 88 assertions, përfshirë 8 pamje Blade të kompiluara | Kaluan |
| Service worker: 15 kontrolle | Kaluan |
| Browser: 3 ekrane × 4 gjerësi (360, 390, 768, 1440 px) | Kaluan |
| Browser: 2 kontrolle të JavaScript-it të formularëve | Kaluan |
| Sintaksa: 7 skedarë PHP, përfshirë instaluesin, dhe 2 JavaScript | Kaluan |
| Instaluesi: 6 kontrolle, përfshirë konfliktin dhe rikthimin | Kaluan |
| Përputhja e 17 skedarëve me hash-et e manifestit | Kaloi |

Lista e emrave dhe rezultateve gjendet te `verification/results.json`.
Numrat janë kontrolle lokale, jo garanci për çdo konfigurim serveri.

## Funksionaliteti i verifikuar

Hyrja e përdoruesit; tab-i vetëm në profilin e vet; lidhjet e vjetra të support-it;
krijimi i kërkesës; filtrat/kërkimi/paginimi; përgjigjja e adminit ekzistues;
shfaqja e përgjigjes në profil; përgjigjja e përdoruesit; mbyllja dhe rihapja;
vlerësimi i ndihmës; ruajtja e statusit “Zgjidhur”; shqip dhe anglisht.

## Privatësia dhe input-et

U verifikuan ndalimi i aksesit për llogari tjetër dhe ndarja user/business_owner
edhe kur kanë të njëjtën ID numerike. U kontrolluan URL-të e vjetra dhe të reja.
Përdoruesi nuk lexon shënime të brendshme apo shkarkon skedarët e tyre.

U testuan CSRF (419), kufizimi i ritmit (429), fusha bosh ose të formuara gabim,
refuzimi i input-eve që përpiqen të ndryshojnë pronësinë/statusin/is_internal,
escapimi i HTML-së, kufiri i numrit/madhësisë së skedarëve, prapashtesë e palejuar,
ruajtja private dhe pastrimi i regjistrimeve kur simulimi i upload-it dështon.

U kontrolluan no-store/noindex, bypass-i i rrugëve private dhe i rrugëve me
karaktere të koduara, refuzimi i cache për redirect/private responses dhe
mosfutja e homepage HTML në precache të instalimit.

## Metodologjia dhe kufizimet

Testet përdorën kodin real të patch-it, modelet ekzistuese, route-et dhe
kontrolluesin e pandryshuar të adminit brenda një aplikacioni Laravel lokal të izoluar.
Të gjitha llogaritë, ticket-et dhe skedarët e testit ishin sintetike.

Runtime-i lokal nuk kishte shtesën pdo_sqlite. Për testim u përdor një përshtatës
test-only me FFI drejt SQLite në memorie. Ky përshtatës NUK është pjesë e patch-it
dhe NUK kërkohet në server. Testet nuk u ekzekutuan mbi MariaDB-në e hostimit.
Skema support e eksportit përdor MyISAM; prandaj kodi i upload-it ka pastrim
eksplicit për dështimet, jo pretendim se një transaction/rollback garanton kthim.

Pamjet e reja dhe layout-i real i profilit u renderuan lokalisht. Për shkak të
kufizimeve të mjedisit, përbërësit globalë të site-it si navbar-i dhe footer-i u
zëvendësuan me një shell testimi. Kontrollet Playwright/Chromium përdorën HTML-në
e renderuar, CSS-në e projektit dhe JavaScript-in real të patch-it. U kontrolluan
overflow horizontal, tab-i aktiv, validimi i skedarëve dhe bllokimi i dërgimit të dyfishtë.
Ky nuk është test end-to-end i sesioneve reale në browser dhe as provë e
pamjes pixel-perfect të gjithë faqes aktive.

PHP 8.4 raportoi paralajmërime deprecation nga varësia ekzistuese brick/math.
Kontrollet përfunduan me sukses; varësitë nuk u ndryshuan nga ky patch.

Instaluesi u provua mbi një kopje vetëm të skedarëve bazë: kontroll pa shkrim,
ndalim në konflikt, instalim dhe hash-e, backup privat, ri-ekzekutim pa efekt,
dhe rikthim i verifikuar.

Nuk u testuan në serverin aktiv: konfigurimi real i web server-it/PHP-FPM,
limitet e upload-it të hostimit, provider-at e jashtëm, email-et ose push notifications.
Nuk u përdorën kredencialet e ngarkuara dhe nuk u ndryshuan databaza ose skedarë live.

## Para publikimit

Zbato listën e provës në `README_SQ.md` në staging me dy përdorues dhe një admin.
Kontrollo që route/view cache pastrohen dhe service worker-i i ri aktivizohet.
