# Reservation Management System — Justfile # Wymaga: just, node 20+, npm, docker, docker compose # Instalacja just: https://github.com/casey/just#installation # ── Zmienne ───────────────────────────────────────────────────────────────── API_PORT := "3001" DEV_PORT := "5173" # ── Domyślna komenda (lista wszystkich) ────────────────────────────────────── default: @just --list # ── Tryb deweloperski ───────────────────────────────────────────────────────── # Zainstaluj zależności npm install: npm ci # Uruchom json-server (mock API) w tle na porcie 3001 api: npx json-server --watch db.json --host 0.0.0.0 --port {{API_PORT}} # Uruchom serwer deweloperski Vite dev: npm run dev # Uruchom API i Vite równolegle (wymaga GNU parallel lub mprocs) start: install #!/usr/bin/env bash trap 'kill 0' EXIT npx json-server --watch db.json --host 0.0.0.0 --port {{API_PORT}} & npm run dev # ── Testy ──────────────────────────────────────────────────────────────────── # Uruchom testy jednostkowe (Vitest) test: npm run test # Uruchom testy e2e Playwright (wymaga działającego API i dev serwera) e2e: node test_rms.mjs # Uruchom WSZYSTKIE testy (jednostkowe + e2e) — startuje serwery, testuje, zamyka test-all: #!/usr/bin/env bash set -e echo ">>> Uruchamianie json-server na porcie {{API_PORT}}..." npx json-server --watch db.json --host 0.0.0.0 --port {{API_PORT}} >/tmp/jss.log 2>&1 & JSS_PID=$! echo ">>> Uruchamianie Vite dev server na porcie {{DEV_PORT}}..." npm run dev >/tmp/vite.log 2>&1 & VITE_PID=$! trap "kill $JSS_PID $VITE_PID 2>/dev/null; wait $JSS_PID $VITE_PID 2>/dev/null; true" EXIT echo ">>> Oczekiwanie na gotowość serwerów..." sleep 5 echo "" echo "=========================================" echo " Vitest — testy jednostkowe" echo "=========================================" npm run test -- --run echo "" echo "=========================================" echo " Playwright — testy e2e" echo "=========================================" node test_rms.mjs # Uruchom Storybook storybook: npm run storybook # ── Budowanie ──────────────────────────────────────────────────────────────── # Zbuduj aplikację produkcyjną (VITE_API_URL=/api dla Dockera) build: VITE_API_URL=/api npm run build # Zbuduj i sprawdź lokalnie przez preview Vite (wymaga osobnego API) preview: build npm run preview # ── Docker ─────────────────────────────────────────────────────────────────── # Zbuduj obrazy Docker (frontend + api) docker-build: docker compose build # Uruchom aplikację w Dockerze (http://localhost) docker-up: docker compose up -d @echo "" @echo "Aplikacja dostępna na: http://localhost" @echo "API (json-server): http://localhost:{{API_PORT}}" @echo "" @echo "Zatrzymaj: just docker-down" # Uruchom w trybie interaktywnym z logami docker-up-logs: docker compose up # Zatrzymaj kontenery docker-down: docker compose down # Zatrzymaj i usuń wolumeny (resetuje db.json do stanu z obrazu) docker-clean: docker compose down -v # Przebuduj i uruchom od zera docker-rebuild: docker compose down docker compose build --no-cache docker compose up -d @echo "Aplikacja dostępna na: http://localhost" # Pokaż logi kontenerów docker-logs: docker compose logs -f # Status kontenerów docker-ps: docker compose ps