.PHONY: install test test-django test-react test-integration docker-up docker-down clean DJANGO = backends/mizan-django REACT = frontends/mizan-react # ─── Setup ─────────────────────────────────────────────────────────────────── install: cd cores/mizan-python && uv pip install -e . cd $(DJANGO) && uv pip install -e ".[dev,channels]" cd $(REACT) && npm install # ─── Unit Tests ────────────────────────────────────────────────────────────── test: test-django test-react test-django: cd $(DJANGO) && uv run pytest test-react: cd $(REACT) && npm test # ─── Integration Tests ────────────────────────────────────────────────────── test-integration: docker-up @echo "Waiting for backend..." @timeout 30 sh -c 'until curl -sf http://localhost:8000/api/mizan/session/ > /dev/null 2>&1; do sleep 1; done' cd $(REACT) && npm run test:integration @$(MAKE) docker-down # ─── Docker ────────────────────────────────────────────────────────────────── docker-up: docker compose -f examples/django-react-site/docker-compose.test.yml up -d --build @echo "Backend starting at http://localhost:8000" docker-down: docker compose -f examples/django-react-site/docker-compose.test.yml down # ─── All ───────────────────────────────────────────────────────────────────── test-all: test test-integration # ─── Cleanup ───────────────────────────────────────────────────────────────── clean: docker compose -f examples/django-react-site/docker-compose.test.yml down -v --remove-orphans 2>/dev/null || true rm -rf $(DJANGO)/src/mizan.egg-info $(DJANGO)/dist $(DJANGO)/build rm -rf $(REACT)/dist $(REACT)/node_modules rm -f examples/django-react-site/backend/db.sqlite3