Skip to content

Commit e074773

Browse files
committed
fix(tests): remove duplicate script stub from lab test files
1 parent aeae22a commit e074773

2 files changed

Lines changed: 0 additions & 268 deletions

File tree

tests/labs/test-lab-17-03.sh

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -159,58 +159,3 @@ fi
159159
# ── Colors ────────────────────────────────────────────────────────────────────
160160
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
161161
CYAN='\033[0;36m'; NC='\033[0m'
162-
163-
pass() { echo -e "${GREEN}[PASS]${NC} $1"; ((PASS++)); }
164-
fail() { echo -e "${RED}[FAIL]${NC} $1"; ((FAIL++)); }
165-
info() { echo -e "${CYAN}[INFO]${NC} $1"; }
166-
warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
167-
168-
echo -e "${CYAN}======================================${NC}"
169-
echo -e "${CYAN} Lab ${LAB_ID}: ${LAB_NAME}${NC}"
170-
echo -e "${CYAN} Module: ${MODULE}${NC}"
171-
echo -e "${CYAN}======================================${NC}"
172-
echo ""
173-
174-
# ── PHASE 1: Setup ────────────────────────────────────────────────────────────
175-
info "Phase 1: Setup"
176-
docker compose -f "${COMPOSE_FILE}" up -d
177-
info "Waiting 30s for ${MODULE} to initialize..."
178-
sleep 30
179-
180-
# ── PHASE 2: Health Checks ────────────────────────────────────────────────────
181-
info "Phase 2: Health Checks"
182-
183-
if docker compose -f "${COMPOSE_FILE}" ps | grep -q "running\|Up"; then
184-
pass "Container is running"
185-
else
186-
fail "Container is not running"
187-
fi
188-
189-
# ── PHASE 3: Functional Tests ─────────────────────────────────────────────────
190-
info "Phase 3: Functional Tests (Lab 03 — Advanced Features)"
191-
192-
# TODO: Add module-specific functional tests here
193-
# Example:
194-
# if curl -sf http://localhost:80/health > /dev/null 2>&1; then
195-
# pass "Health endpoint responds"
196-
# else
197-
# fail "Health endpoint not reachable"
198-
# fi
199-
200-
warn "Functional tests for Lab 17-03 pending implementation"
201-
202-
# ── PHASE 4: Cleanup ──────────────────────────────────────────────────────────
203-
info "Phase 4: Cleanup"
204-
docker compose -f "${COMPOSE_FILE}" down -v --remove-orphans
205-
info "Cleanup complete"
206-
207-
# ── Results ───────────────────────────────────────────────────────────────────
208-
echo ""
209-
echo -e "${CYAN}======================================${NC}"
210-
echo -e " Lab ${LAB_ID} Complete"
211-
echo -e " ${GREEN}PASS: ${PASS}${NC} | ${RED}FAIL: ${FAIL}${NC}"
212-
echo -e "${CYAN}======================================${NC}"
213-
214-
if [ "${FAIL}" -gt 0 ]; then
215-
exit 1
216-
fi

tests/labs/test-lab-17-05.sh

Lines changed: 0 additions & 213 deletions
Original file line numberDiff line numberDiff line change
@@ -509,216 +509,3 @@ echo -e "${CYAN}========================================${NC}"
509509
# ── Colors ────────────────────────────────────────────────────────────────────
510510
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
511511
CYAN='\033[0;36m'; NC='\033[0m'
512-
513-
pass() { echo -e "${GREEN}[PASS]${NC} $1"; ((PASS++)); }
514-
fail() { echo -e "${RED}[FAIL]${NC} $1"; ((FAIL++)); }
515-
info() { echo -e "${CYAN}[INFO]${NC} $1"; }
516-
warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
517-
518-
echo -e "${CYAN}======================================${NC}"
519-
echo -e "${CYAN} Lab ${LAB_ID}: ${LAB_NAME}${NC}"
520-
echo -e "${CYAN} Module: ${MODULE}${NC}"
521-
echo -e "${CYAN}======================================${NC}"
522-
APP_PORT=8442
523-
MOCK_PORT=8763
524-
KC_PORT=8542
525-
LDAP_PORT=3887
526-
MH_PORT=8742
527-
MOCK_URL="http://localhost:${MOCK_PORT}"
528-
529-
APP_CONTAINER="glpi-i05-app"
530-
MOCK_CONTAINER="glpi-i05-mock"
531-
532-
# ── Cleanup trap ──────────────────────────────────────────────────────────────
533-
NO_CLEANUP=false
534-
[[ "${1:-}" == "--no-cleanup" ]] && NO_CLEANUP=true
535-
536-
cleanup() {
537-
if [[ "${NO_CLEANUP}" == "false" ]]; then
538-
info "Phase 4: Cleanup"
539-
docker compose -f "${COMPOSE_FILE}" down -v --remove-orphans 2>/dev/null || true
540-
info "Cleanup complete"
541-
else
542-
warn "Skipping cleanup (--no-cleanup)"
543-
fi
544-
}
545-
trap cleanup EXIT
546-
547-
echo ""
548-
549-
# ── PHASE 1: Setup ────────────────────────────────────────────────────────────
550-
info "Phase 1: Setup"
551-
docker compose -f "${COMPOSE_FILE}" up -d
552-
info "Waiting 60s for GLPI stack to initialize..."
553-
sleep 60
554-
555-
# ── PHASE 2: Health Checks ────────────────────────────────────────────────────
556-
info "Phase 2: Health Checks"
557-
558-
if docker ps --format '{{.Names}}' | grep -q "^${APP_CONTAINER}$"; then
559-
pass "GLPI app container running"
560-
else
561-
fail "GLPI app container not running"
562-
fi
563-
564-
if docker ps --format '{{.Names}}' | grep -q "^${MOCK_CONTAINER}$"; then
565-
pass "WireMock container running"
566-
else
567-
fail "WireMock container not running"
568-
fi
569-
570-
# App health
571-
if curl -sf "http://localhost:${APP_PORT}/" > /dev/null 2>&1; then
572-
pass "GLPI web interface responds"
573-
else
574-
warn "GLPI web interface not yet ready"
575-
fi
576-
577-
# WireMock health
578-
if curl -sf "${MOCK_URL}/__admin/health" > /dev/null; then
579-
pass "WireMock admin health OK"
580-
else
581-
fail "WireMock admin health unreachable"
582-
fi
583-
584-
# Keycloak
585-
if curl -sf "http://localhost:${KC_PORT}/realms/master" > /dev/null 2>&1; then
586-
pass "Keycloak master realm accessible"
587-
else
588-
warn "Keycloak not yet ready"
589-
fi
590-
591-
# LDAP
592-
if ldapsearch -x -H ldap://localhost:${LDAP_PORT} -b dc=lab,dc=local \
593-
-D cn=admin,dc=lab,dc=local -w LdapLab05! cn=admin > /dev/null 2>&1; then
594-
pass "OpenLDAP bind successful"
595-
else
596-
warn "OpenLDAP bind failed"
597-
fi
598-
599-
# Mailhog
600-
if curl -sf "http://localhost:${MH_PORT}/" > /dev/null 2>&1; then
601-
pass "Mailhog web UI accessible"
602-
else
603-
warn "Mailhog web UI not ready"
604-
fi
605-
606-
# ── PHASE 3: Integration Tests ────────────────────────────────────────────────
607-
info "Phase 3: Integration Tests (Zammad REST API via WireMock)"
608-
609-
# 3a: Register Zammad tickets stub
610-
info "3a: Registering Zammad GET /api/v1/tickets stub..."
611-
HTTP_STATUS=$(curl -sf -o /dev/null -w "%{http_code}" \
612-
-X POST "${MOCK_URL}/__admin/mappings" \
613-
-H "Content-Type: application/json" \
614-
-d '{
615-
"request": {"method": "GET", "url": "/api/v1/tickets"},
616-
"response": {
617-
"status": 200,
618-
"headers": {"Content-Type": "application/json"},
619-
"body": "[{\"id\":1,\"number\":\"10001\",\"title\":\"GLPI escalation test\",\"state\":{\"name\":\"open\"},\"priority\":{\"name\":\"2 normal\"},\"created_at\":\"2025-01-01T00:00:00Z\"}]"
620-
}
621-
}' || echo "000")
622-
if [ "${HTTP_STATUS}" = "201" ]; then
623-
pass "WireMock Zammad GET /api/v1/tickets stub registered (201)"
624-
else
625-
fail "WireMock Zammad ticket stub registration failed (HTTP ${HTTP_STATUS})"
626-
fi
627-
628-
# Register Zammad ticket create stub
629-
HTTP_STATUS=$(curl -sf -o /dev/null -w "%{http_code}" \
630-
-X POST "${MOCK_URL}/__admin/mappings" \
631-
-H "Content-Type: application/json" \
632-
-d '{
633-
"request": {"method": "POST", "url": "/api/v1/tickets"},
634-
"response": {
635-
"status": 201,
636-
"headers": {"Content-Type": "application/json"},
637-
"body": "{\"id\":42,\"number\":\"10042\",\"title\":\"GLPI escalated ticket\",\"state\":{\"name\":\"open\"}}"
638-
}
639-
}' || echo "000")
640-
if [ "${HTTP_STATUS}" = "201" ]; then
641-
pass "WireMock Zammad POST /api/v1/tickets stub registered"
642-
else
643-
fail "WireMock Zammad POST ticket stub failed (HTTP ${HTTP_STATUS})"
644-
fi
645-
646-
# 3b: Verify Zammad API mock responds
647-
if curl -sf "${MOCK_URL}/api/v1/tickets" | grep -q 'GLPI escalation test'; then
648-
pass "WireMock Zammad GET /api/v1/tickets returns ticket JSON"
649-
else
650-
fail "WireMock Zammad GET /api/v1/tickets returned unexpected response"
651-
fi
652-
653-
# 3c: Integration env vars in GLPI container
654-
if docker exec "${APP_CONTAINER}" env 2>/dev/null | grep -q 'ZAMMAD_URL='; then
655-
pass "ZAMMAD_URL env var present in GLPI container"
656-
else
657-
fail "ZAMMAD_URL env var missing from GLPI container"
658-
fi
659-
660-
if docker exec "${APP_CONTAINER}" env 2>/dev/null | grep -q 'ZAMMAD_TOKEN='; then
661-
pass "ZAMMAD_TOKEN env var present in GLPI container"
662-
else
663-
fail "ZAMMAD_TOKEN env var missing from GLPI container"
664-
fi
665-
666-
# 3d: Container-to-WireMock connectivity
667-
if docker exec "${APP_CONTAINER}" curl -sf http://glpi-i05-mock:8080/__admin/health > /dev/null 2>&1; then
668-
pass "GLPI container can reach WireMock (glpi-i05-mock:8080)"
669-
else
670-
fail "GLPI container cannot reach WireMock"
671-
fi
672-
673-
# 3e: Simulate GLPI → Zammad ticket escalation via WireMock
674-
if docker exec "${APP_CONTAINER}" curl -sf \
675-
-X POST http://glpi-i05-mock:8080/api/v1/tickets \
676-
-H 'Content-Type: application/json' \
677-
-H "Authorization: Token token=lab-zammad-token-05" \
678-
-d '{"title":"GLPI escalated ticket","group":"Support","customer_id":2}' 2>/dev/null | grep -q 'GLPI escalated'; then
679-
pass "GLPI → Zammad ticket creation call succeeds (via WireMock)"
680-
else
681-
warn "GLPI → Zammad ticket creation not verified (app may need full setup)"
682-
fi
683-
684-
# 3f: Volume assertions
685-
if docker volume ls | grep -q 'glpi-i05-app-data'; then
686-
pass "GLPI app data volume exists"
687-
else
688-
fail "GLPI app data volume missing"
689-
fi
690-
691-
# ── Results ───────────────────────────────────────────────────────────────────
692-
echo ""
693-
echo -e "${CYAN}========================================${NC}"
694-
echo -e " Lab ${LAB_ID} Complete"
695-
echo -e " ${GREEN}PASS: ${PASS}${NC} | ${RED}FAIL: ${FAIL}${NC}"
696-
echo -e "${CYAN}========================================${NC}"
697-
698-
[ "${FAIL}" -gt 0 ] && exit 1 || exit 0
699-
700-
# TODO: Add module-specific functional tests here
701-
# Example:
702-
# if curl -sf http://localhost:80/health > /dev/null 2>&1; then
703-
# pass "Health endpoint responds"
704-
# else
705-
# fail "Health endpoint not reachable"
706-
# fi
707-
708-
warn "Functional tests for Lab 17-05 pending implementation"
709-
710-
# ── PHASE 4: Cleanup ──────────────────────────────────────────────────────────
711-
info "Phase 4: Cleanup"
712-
docker compose -f "${COMPOSE_FILE}" down -v --remove-orphans
713-
info "Cleanup complete"
714-
715-
# ── Results ───────────────────────────────────────────────────────────────────
716-
echo ""
717-
echo -e "${CYAN}======================================${NC}"
718-
echo -e " Lab ${LAB_ID} Complete"
719-
echo -e " ${GREEN}PASS: ${PASS}${NC} | ${RED}FAIL: ${FAIL}${NC}"
720-
echo -e "${CYAN}======================================${NC}"
721-
722-
if [ "${FAIL}" -gt 0 ]; then
723-
exit 1
724-
fi

0 commit comments

Comments
 (0)