# Testing Patterns

**Analysis Date:** 2026-04-27

## Test Framework

**Runner:**
- None — no test framework detected in the codebase

**Assertion Library:**
- None

**Run Commands:**
- No test commands defined

## Test File Organization

**Location:**
- No test files exist anywhere in `_rejestracja/`

**Naming:**
- N/A — no test files

## Current Verification Approach

All verification is manual:

1. **PHP syntax check** — `php -l {file}` run manually or via IDE
2. **Browser smoke test** — manually load registration form, submit, check DB/email
3. **Admin panel check** — manually verify `/_rejestracja/Admin/Calc/Reg` renders correctly
4. **Migration runner** — run `apply-*.php?run=YYYYMMDD` and read output message

## Test Coverage Gaps

**Everything is untested:**
- Form submission and validation logic in `IndexController.php`
- Model field mapping in `MfParticipant.class.php` (especially `$fields` array)
- DAL query generation in `DefaultDAL.class.php`
- Email sending logic
- Payment status calculation
- Smarty plugin behavior (`{translate}`, `{formField}`, `{url}`)
- Migration runners (idempotency)

## Adding Tests (if introduced)

If a test framework were added to this PHP project:

**Recommended framework:** PHPUnit (standard PHP unit testing)

**What would be easiest to test first:**
- Model getter/setter roundtrips (pure PHP, no DB)
- `Validator` class required-field checks
- Price calculation logic (if extracted from controller)

**What would require infrastructure:**
- DAL tests (require MySQL connection)
- Full controller tests (require HTTP or simulated request context)
- Email tests (require mock or captured SMTP)

**Key constraint:**
- PHP 5.x compatibility required — PHPUnit 4.x or 5.x (not modern versions)

---

*Testing analysis: 2026-04-27*
*Update if a test framework is introduced*
