2026-02-07 19:36:48 +00:00
|
|
|
# ==============================================================================
|
|
|
|
|
# TEST & QUALITY (unit tests, lint, format)
|
|
|
|
|
# ==============================================================================
|
|
|
|
|
|
2026-02-27 08:43:25 +00:00
|
|
|
.PHONY: test test-tmt lint fmt status test-web test-backend-api test-stream-server
|
feat(loadtests): audit 3.2 — tests de charge k6 complets
- loadtests: centraliser scripts (backend, stream, chat)
- backend: health, auth, tracks, uploads, playlists, marketplace
- stream: http health, healthz, readyz
- chat: WebSocket load (register -> login -> chat token -> WS)
- ci: workflow nightly load-test-nightly.yml
- docs: README loadtests
- make: load-test-smoke, load-test-backend, load-test-all
- fix: veza-backend-api Makefile load-test (scripts/load_test_uploads.js -> loadtests)
2026-02-15 14:22:48 +00:00
|
|
|
.PHONY: load-test-smoke load-test-backend load-test-all
|
2026-02-27 08:43:25 +00:00
|
|
|
.PHONY: lint-web lint-backend-api lint-stream-server
|
2026-02-07 19:36:48 +00:00
|
|
|
|
2026-02-11 21:18:57 +00:00
|
|
|
# Env vars for backend tests (align with docker-compose ports: Redis 16379, RabbitMQ 15672)
|
|
|
|
|
TEST_REDIS_ADDR ?= localhost:$(PORT_REDIS)
|
|
|
|
|
TEST_REDIS_URL ?= redis://localhost:$(PORT_REDIS)/15
|
|
|
|
|
TEST_RABBITMQ_URL ?= amqp://$(DB_USER):$(DB_PASS)@localhost:$(PORT_RABBITMQ_AMQP)/
|
|
|
|
|
|
2026-02-07 19:36:48 +00:00
|
|
|
test: infra-up ## [MID] Run All Tests (Fastest strategy)
|
|
|
|
|
@$(ECHO_CMD) "${BLUE}🧪 Running Tests...${NC}"
|
|
|
|
|
@$(ECHO_CMD) " [Go] Unit Tests..."
|
2026-02-11 21:18:57 +00:00
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_backend-api) && \
|
|
|
|
|
REDIS_ADDR=$(TEST_REDIS_ADDR) \
|
|
|
|
|
REDIS_TEST_URL=$(TEST_REDIS_URL) \
|
|
|
|
|
RABBITMQ_URL=$(TEST_RABBITMQ_URL) \
|
|
|
|
|
go test ./... -short)
|
2026-02-07 19:36:48 +00:00
|
|
|
@$(ECHO_CMD) " [Rust] Unit Tests..."
|
|
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_stream-server) && cargo test --lib -q)
|
|
|
|
|
@$(ECHO_CMD) " [Web] Unit Tests..."
|
|
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_web) && npm run test -- --run)
|
|
|
|
|
@$(ECHO_CMD) "${GREEN}✅ All tests passed.${NC}"
|
|
|
|
|
|
|
|
|
|
test-tmt: ## [MID] Run Unified TMT Pipeline
|
|
|
|
|
@$(ECHO_CMD) "${BLUE}🧪 Running TMT Pipeline...${NC}"
|
|
|
|
|
@command -v tmt >/dev/null 2>&1 || { $(ECHO_CMD) "${RED}❌ tmt is missing! Install with 'pip install tmt'${NC}"; exit 1; }
|
|
|
|
|
@tmt run
|
|
|
|
|
|
|
|
|
|
test-web: ## [MID] Run Web tests only
|
|
|
|
|
@$(ECHO_CMD) "${BLUE}🧪 Running Web tests...${NC}"
|
|
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_web) && npm run test -- --run)
|
|
|
|
|
|
2026-02-11 21:18:57 +00:00
|
|
|
test-backend-api: infra-up ## [MID] Run Go backend tests only
|
2026-02-07 19:36:48 +00:00
|
|
|
@$(ECHO_CMD) "${BLUE}🧪 Running Backend API tests...${NC}"
|
2026-02-11 21:18:57 +00:00
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_backend-api) && \
|
|
|
|
|
REDIS_ADDR=$(TEST_REDIS_ADDR) \
|
|
|
|
|
REDIS_TEST_URL=$(TEST_REDIS_URL) \
|
|
|
|
|
RABBITMQ_URL=$(TEST_RABBITMQ_URL) \
|
|
|
|
|
go test ./... -short)
|
2026-02-07 19:36:48 +00:00
|
|
|
|
|
|
|
|
test-stream-server: ## [MID] Run Stream server tests only
|
|
|
|
|
@$(ECHO_CMD) "${BLUE}🧪 Running Stream server tests...${NC}"
|
|
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_stream-server) && cargo test --lib -q)
|
|
|
|
|
|
|
|
|
|
lint: ## [MID] Lint everything
|
|
|
|
|
@$(ECHO_CMD) "${BLUE}🔍 Linting Codebase...${NC}"
|
|
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_stream-server) && cargo clippy -- -D warnings) || true
|
|
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_backend-api) && golangci-lint run ./...) || true
|
|
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_web) && npm run lint) || true
|
|
|
|
|
|
|
|
|
|
lint-web: ## [MID] Lint web app only
|
|
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_web) && npm run lint)
|
|
|
|
|
|
|
|
|
|
lint-backend-api: ## [MID] Lint Go backend only
|
|
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_backend-api) && golangci-lint run ./...)
|
|
|
|
|
|
|
|
|
|
lint-stream-server: ## [MID] Lint Stream server only
|
|
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_stream-server) && cargo clippy -- -D warnings)
|
|
|
|
|
|
|
|
|
|
fmt: ## [MID] Format everything
|
|
|
|
|
@$(ECHO_CMD) "${BLUE}✨ Formatting...${NC}"
|
|
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_backend-api) && go fmt ./...)
|
|
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_stream-server) && cargo fmt)
|
|
|
|
|
@(cd $(ROOT)/$(SERVICE_DIR_web) && npm run format) || true
|
|
|
|
|
|
feat(loadtests): audit 3.2 — tests de charge k6 complets
- loadtests: centraliser scripts (backend, stream, chat)
- backend: health, auth, tracks, uploads, playlists, marketplace
- stream: http health, healthz, readyz
- chat: WebSocket load (register -> login -> chat token -> WS)
- ci: workflow nightly load-test-nightly.yml
- docs: README loadtests
- make: load-test-smoke, load-test-backend, load-test-all
- fix: veza-backend-api Makefile load-test (scripts/load_test_uploads.js -> loadtests)
2026-02-15 14:22:48 +00:00
|
|
|
load-test-smoke: ## [MID] Run k6 smoke load test
|
|
|
|
|
@command -v k6 >/dev/null 2>&1 || { $(ECHO_CMD) "${RED}❌ k6 missing. Install: brew install k6${NC}"; exit 1; }
|
|
|
|
|
@k6 run $(ROOT)/loadtests/smoke.js
|
|
|
|
|
|
|
|
|
|
load-test-backend: ## [MID] Run k6 backend full load test
|
|
|
|
|
@command -v k6 >/dev/null 2>&1 || { $(ECHO_CMD) "${RED}❌ k6 missing. Install: brew install k6${NC}"; exit 1; }
|
|
|
|
|
@k6 run $(ROOT)/loadtests/backend/full.js
|
|
|
|
|
|
2026-02-27 08:43:25 +00:00
|
|
|
load-test-all: load-test-backend ## [MID] Run all k6 load tests (backend, stream)
|
feat(loadtests): audit 3.2 — tests de charge k6 complets
- loadtests: centraliser scripts (backend, stream, chat)
- backend: health, auth, tracks, uploads, playlists, marketplace
- stream: http health, healthz, readyz
- chat: WebSocket load (register -> login -> chat token -> WS)
- ci: workflow nightly load-test-nightly.yml
- docs: README loadtests
- make: load-test-smoke, load-test-backend, load-test-all
- fix: veza-backend-api Makefile load-test (scripts/load_test_uploads.js -> loadtests)
2026-02-15 14:22:48 +00:00
|
|
|
@k6 run $(ROOT)/loadtests/stream/http.js || true
|
|
|
|
|
|
2026-02-07 19:36:48 +00:00
|
|
|
status: ## [MID] Show system health & stats
|
|
|
|
|
@$(ECHO_CMD) "${BOLD}DOCKER STATS:${NC}"
|
|
|
|
|
@docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}" 2>/dev/null | grep -E "NAME|veza" || echo "No containers running"
|
|
|
|
|
@$(ECHO_CMD) ""
|
|
|
|
|
@$(ECHO_CMD) "${BOLD}LOCAL PORTS:${NC}"
|
2026-02-27 08:43:25 +00:00
|
|
|
@lsof -i :$(PORT_backend-api) -i :$(PORT_stream-server) -i :$(PORT_web) 2>/dev/null | grep LISTEN || echo "No apps listening."
|