#!/usr/bin/env bash set -e echo "๐Ÿงช Running Hako E2E Tests" # Environment setup export TESTCONTAINERS_RYUK_DISABLED="${TESTCONTAINERS_RYUK_DISABLED:-true}" export DOCKER_HOST="${DOCKER_HOST:-unix:///var/run/docker.sock}" # Check Docker if ! docker info > /dev/null 2>&1; then echo "โŒ Error: Docker is not available (check DOCKER_HOST and socket mount)" exit 1 fi # Install Playwright if needed, pinned to the module the tests link against PLAYWRIGHT_MODULE="github.com/mxschmitt/playwright-go" PLAYWRIGHT_VERSION="$(cd e2e && go list -m -f '{{.Version}}' "$PLAYWRIGHT_MODULE")" PLAYWRIGHT_CMD="$PLAYWRIGHT_MODULE/cmd/playwright@$PLAYWRIGHT_VERSION" if ! go run "$PLAYWRIGHT_CMD" --help > /dev/null 2>&1; then echo "๐Ÿ“ฆ Installing Playwright browsers..." (cd e2e && go run "$PLAYWRIGHT_CMD" install chromium) fi # Build webapp (required for embed) echo "๐Ÿ—๏ธ Building webapp..." make build-webapp # Create screenshots directory mkdir -p e2e/screenshots # Run tests echo "๐Ÿš€ Running e2e tests..." cd e2e && CGO_ENABLED=0 go test -v -timeout=60m ./... echo "โœ… E2E tests completed"