chore: complete M1.1 runtime QA and release packaging

This commit is contained in:
XShop
2026-09-13 19:04:41 +03:30
commit f11e1d650d
66 changed files with 3094 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
# XShop – Testing
## 1. Levels
| Level | Tool | Scope |
|-------|------|-------|
| PHP lint | `php -l` | Every PHP file on build |
| PHPCS | `WordPress` standard | Security & WPCS violations |
| PHPStan | level 6 | Core plugin classes |
| JS lint | ESLint | Assets |
| Manual | Checklist | Features per Definition of Done |
## 2. Manual Matrix (must pass before 1.0.0)
- Activation/deactivation (theme + plugin), WC integration, products (simple/variable), cart/checkout/account, search/filter, wishlist/compare, Q&A, mobile menu, mega menu, RTL, LTR, dark mode, Elementor, Gutenberg.
### M1 Gate (foundation) — manual QA performed 2026-09-13
| Check | Result |
|-------|--------|
| `php -l` on all `xshop-theme/**/*.php` (PHP 8.2.12) | ✅ Pass (24 files incl. `inc/setup/body-classes.php:1`) |
| `node --check assets/js/theme.js` | ✅ Pass |
| No `TODO/FIXME/console.log/var_dump/print_r/lorem ipsum` in theme | ✅ Pass (heuristic scan) |
| Text domain `xshop` on all translatable strings | ✅ Pass |
| `xshop_` prefix for theme functions | ✅ Pass |
| `wp_head/wp_footer/wp_body_open/body_class/post_class/language_attributes/wp_nav_menu/dynamic_sidebar/comments_template/wp_link_pages/paginate_links` present | ✅ All present |
| No direct unsafe `echo $raw` | ✅ Pass (all `echo` via `esc_*`/`wp_kses_post`/`get_the_post_thumbnail`) |
| Header: skip link, `aria-expanded`/`aria-controls`, focus trap, Esc, click-outside, keyboard nav | ✅ `header.php:1` + `site-header.php:1` + `theme.js:1` |
| Footer: widgets, nav, copyright, accessible | ✅ `site-footer.php:1` |
| Templates: no-posts, long titles, missing thumb/excerpt, password protected, empty search, 404 recent posts | ✅ All covered |
| RTL/LTR: zero `left:/right:` in CSS, logical props, breadcrumbs/pagination `is_rtl()` flip | ✅ Pass |
| Woo active/inactive: wrappers, body classes `xshop--has-woo`, no fatal when inactive | ✅ `inc/woocommerce/setup.php:1` + `inc/helpers/template.php:1` guards |
| Dark mode tokens | ✅ `tokens.css:1` full coverage + `header.php:1` `data-theme` + `body-classes.php:1` |
| Responsive: 360/768/1024/1280 token breakpoints | ✅ `layout.css:1` + `components.css:1` |
| No PHP warnings/notices (static) | ✅ Pass — no undefined vars, all `apply_filters` guarded |
## 3. Browser
Chromium, Firefox, Edge, Safari (where available). Responsive: 360/768/1024/1280.
## 4. Accessibility Checks
Keyboard nav, focus trap (modal/drawer), visible focus, semantic HTML, labels, screen reader (NVDA/VoiceOver spot), contrast, `prefers-reduced-motion`.
## 5. Performance Smoke
Lighthouse home/shop/product ≥ 85 perf (desktop). Query count via Query Monitor.
## 6. How to Run (local)
```powershell
C:\xampp\php\php.exe -l xshop-theme\functions.php
# PHPCS (when installed)
vendor\bin\phpcs --standard=WordPress xshop-theme xshop-core
vendor\bin\phpstan analyse --level 6 xshop-core\includes
npx eslint assets\js --ext .js
```
## 7. Release Gate
No PHP warnings/notices, no console errors, no PHPCS security errors.