Skip to content

Latest commit

 

History

History
188 lines (131 loc) · 6.58 KB

File metadata and controls

188 lines (131 loc) · 6.58 KB

Jak si připravit vývojové prostředí

Požadavky

Plné vývojové prostředí

  • v kořenovém adresáři members spusť:
docker compose -p members-dev -f docker-compose.dev.yml up --build
  • do Visual Studio Code přidej Remote Explorer extension
  • připoj Visual Studio Code ke kontejneru members-dev-web-1
  • otevři adresář /var/www/html/members

Prostředí obsahuje Git, Playwright a další nástroje.

PHP debug ve Visual Studio Code:

  • spusť konfiguraci Listen for PHP Xdebug z .vscode/launch.json
  • Xdebug v dev image poslouchá na portu 9003 a startuje se pro každý request

Konfigurační soubory, které aplikace v kontejneru používá, jsou publikované v gitu a připojené z docker/config/dev do www/cfg jako read-only. Upravuj proto soubory v docker/config/dev, ne jejich cíle v www/cfg.

Dostupné služby:

Bank mock pro vývoj:

docker compose -p members-dev -f docker-compose.dev.yml exec web npm run mock:bank
  • admin UI: http://127.0.0.1:10300/__testbench
  • API endpoint pro PHP konektor: http://127.0.0.1:10300/rbcz/premium/api
  • vývojová konfigurace v docker/config/dev/_cfg.php už používá RaiffeisenbankMockConnector

ORIS mock pro vývoj:

docker compose -p members-dev -f docker-compose.dev.yml exec web npm run mock:oris
  • admin UI: http://127.0.0.1:10301/__testbench
  • API endpoint pro ORIS mock: http://127.0.0.1:10301/
  • vývojová konfigurace v docker/config/dev/_cfg.php už používá mock server http://127.0.0.1:10301/

Automatické testy

V kořenovém adresáři members spusť:

docker compose -p members-autotest -f docker-compose.autotest.yml up -d --build --wait
docker compose -p members-autotest -f docker-compose.autotest.yml exec web npm run test:e2e
docker compose -p members-autotest -f docker-compose.autotest.yml exec web npm run test:e2e:no-oris
docker compose -p members-autotest -f docker-compose.autotest.yml exec web npm run test:e2e:no-oris-key
docker compose -p members-autotest -f docker-compose.autotest.yml exec web npm run test:e2e:bank-errors
docker compose -p members-autotest -f docker-compose.autotest.yml exec web npm run test:e2e:oris-errors
docker compose -p members-autotest -f docker-compose.autotest.yml down

Přepínač --wait počká, až budou kontejnery označené jako healthy. V autotest stacku to znamená, že je připravená databáze, běží web a bank a ORIS mock odpovídají na health endpoint, takže testy můžeš spustit hned po startu bez další prodlevy.

Sada no-oris opakuje testy nezávislé na ORIS s vypnutou integrací a ORIS mockem v režimu service_down (HTTP 503). Sada no-oris-key ponechá integraci i mock server zapnuté, ale aplikaci neposkytne klubový klíč. Obě sady po dokončení obnoví přesné předchozí síťové nastavení ORIS mocku a vynechávají ORIS workflow i samostatné testy chyb konektorů.

Sady bank-errors a oris-errors jsou záměrně oddělené od výchozího paralelního běhu. Přepínají globální chybové režimy příslušného mocku; ORIS sada navíc ověřuje import závodu a vytvoření i odstranění přihlášky při síťových a HTTP chybách.

Manuální testy

Pro manuální testy nebo analýzu automatických testů přidej override soubor docker-compose.autotest.observe.yml:

docker compose -p members-autotest -f docker-compose.autotest.yml -f docker-compose.autotest.observe.yml up -d --build --wait
...

Je potřeba ručně přenastavit _cfg.php na $g_baseadr='http://127.0.0.1:10090/members/';

Dostupné služby:

Minimální konfigurace

Vhodná pro manuální testování a změny nastavení.

  • zkopíruj members/www/cfg/_cfg.php.default do members/www/cfg/_cfg.php a uprav jej, nebo použij připravený _cfg.php
  • zkopíruj members/www/cfg/_globals.php.default do members/www/cfg/_globals.php a uprav jej, nebo použij připravený _globals.php
  • zkopíruj members/www/cfg/_tables.php.default do members/www/cfg/_tables.php a uprav jej, nebo použij připravený _tables.php

Výsledná struktura:

members
├── www
│   └── cfg
│       ├── _cfg.php
│       ├── _globals.php
│       └── _tables.php
├── docker
│   └── db_init
└── ...

Spuštění:

docker compose up --build

Přihlášení do aplikace:

  • members, heslo 54321
  • admin - administrátor, aktualizace databáze, opravy
  • tnov_1 - přihlašovatel
  • tnov_2 - trenér
  • tnov_3 - oddílový administrátor
  • tnov_4 - malý trenér
  • tnov_5 - člen
  • tnov_6 - finančník

Databáze:

Práce s kontejnery:

  • kód můžeš měnit z hosta i z kontejneru, aplikační logy jsou v members/www/logs
  • CLI přístup do PHP kontejneru:
docker compose exec web bash
  • CLI přístup do databáze:
docker compose exec db mariadb -u root -p

Přerušení a obnovení práce:

docker compose stop
docker compose start

Ukončení a smazání kontejnerů:

docker compose down

Po změně Docker image nebo závislostí:

docker compose up --build

Známé problémy

Nevytvoří se adresář logs:

docker compose exec web mkdir -p /var/www/html/members/www/logs
docker compose exec web chown -R www-data:www-data /var/www/html/members/www/logs

Jak dodat změny

  • změny posílej přes pull request do arnost00/members z vlastního forku
  • vytvoř branch a průběžně commituj
  • průběžně automaticky testuj
  • ptej se, navrhuj řešení a odkazuj na konkrétní commit
  • změny otestuj a proklikej GUI s různými uživateli
  • pošli pull request
  • obvyklý průběh je: diskuze, nasazení na test, testování, připomínky, opravy a nasazení do produkce