# Dokumentace k engine

## Spouštění testů

### `composer test`
spustí php funkcionální testy

### Oddělení testů k engine a shop
`composer test-*` se řídí env proměnnou `TEST_SHOP`:

`TEST_SHOP=0` testuje pouze engine (výchozí chování)

 - autoloading jen z `engine/`
 - includuje `engine/tests/functional/test.config.php`
 - upgrade spouští pouze z `engine/upgrade/`
 - testy čte pouze z `engine/tests/functional/` 

`TEST_SHOP=1` testuje engine ve spojení se shop.

 - autoloading z `engine/` a `shop/`
 - includuje `shop/include/config.php`
 - upgrade spouští z `engine/upgrade/` a `shop/upgrade/`
 - TODO: čtení testů ze `shop/`

## Nastavení ESLint a Prettier v PHPStorm

Nainstalovat node moduly, pro Mac/Windows potřeba i lokálně, aby to stáhlo OS specifickou dependency.

Pro instalaci modulů z našeho Gitlabu lokálně stačí mít nastavený SSH klíč, jako pro práci s gitem.

### ESLint
PHPStorm:

Settings -> Languages & Frameworks -> JavaScript -> Code Quality Tools -> ESLint

1. Přepnout na manuální konfiguraci (bohužel PHPStorm neumí automaticky načíst nový styl configu)
2. Vybrat ESLint package - jedno jaká, všechno je symlink z enginu
3. Vybrat configuration file - `kupshop/engine/eslint.config.mjs`
4. (optional) Zaškrtnout eslint --fix on save

### Prettier
PHPStorm:

Settings -> Languages & Frameworks -> JavaScript -> Prettier

1. Přepnout na automatickou konfiguraci
2. Upravit `Run for files` na `**/*.{ts,tsx}`, jinak to rozbije hromadu souborů
3. Zapnout `Run on save`
