Services: Admin-Lehrer, Backend-Lehrer, Studio v2, Website, Klausur-Service, School-Service, Voice-Service, Geo-Service, BreakPilot Drive, Agent-Core Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
56 lines
1.5 KiB
Bash
Executable File
56 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Git pre-push hook for studio-v2
|
|
# Runs Playwright E2E tests before pushing changes
|
|
#
|
|
# To install, run:
|
|
# chmod +x .git-hooks/pre-push
|
|
# git config core.hooksPath .git-hooks
|
|
#
|
|
# To skip tests (emergency only):
|
|
# git push --no-verify
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${YELLOW}Running E2E tests before push...${NC}"
|
|
echo ""
|
|
|
|
# Navigate to studio-v2 directory
|
|
cd "$(dirname "$0")/../.." || exit 1
|
|
|
|
# Check if dev server is running on port 3001
|
|
if ! curl -s http://localhost:3001 > /dev/null 2>&1; then
|
|
echo -e "${YELLOW}Dev server not running. Checking remote...${NC}"
|
|
|
|
# Check if macmini server is available
|
|
if curl -s https://macmini/korrektur > /dev/null 2>&1; then
|
|
echo -e "${GREEN}Using remote server at https://macmini${NC}"
|
|
export PLAYWRIGHT_BASE_URL="https://macmini"
|
|
else
|
|
echo -e "${RED}No server available. Start dev server with 'npm run dev' or deploy to macmini.${NC}"
|
|
echo -e "${YELLOW}Skipping tests...${NC}"
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
# Run tests
|
|
echo -e "${YELLOW}Running Playwright tests...${NC}"
|
|
npm run test:e2e -- --reporter=list 2>&1
|
|
|
|
# Check test result
|
|
if [ $? -eq 0 ]; then
|
|
echo ""
|
|
echo -e "${GREEN}All tests passed! Pushing...${NC}"
|
|
exit 0
|
|
else
|
|
echo ""
|
|
echo -e "${RED}Tests failed! Push aborted.${NC}"
|
|
echo -e "${YELLOW}Fix the failing tests and try again.${NC}"
|
|
echo -e "${YELLOW}To push anyway (not recommended): git push --no-verify${NC}"
|
|
exit 1
|
|
fi
|