#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" EMAIL="" PASSWORD="" POST_TEXT="" HEADLESS_FLAG="true" for arg in "$@"; do case "$arg" in --email=*) EMAIL="${arg#*=}" ;; --password=*) PASSWORD="${arg#*=}" ;; --post=*) POST_TEXT="${arg#*=}" ;; --headed) HEADLESS_FLAG="false" ;; *) UNKNOWN_FLAG="${arg%%=*}" echo "{\"success\": false, \"error\": \"Unknown argument: $UNKNOWN_FLAG\"}" exit 1 ;; esac done MISSING="" [ -z "$EMAIL" ] && MISSING="$MISSING --email" [ -z "$PASSWORD" ] && MISSING="$MISSING --password" [ -z "$POST_TEXT" ] && MISSING="$MISSING --post" if [ -n "$MISSING" ]; then echo "{\"success\": false, \"error\": \"Missing required argument(s):$MISSING\"}" exit 1 fi export LINKEDIN_EMAIL="$EMAIL" export LINKEDIN_PASSWORD="$PASSWORD" export POST_CONTENT="$POST_TEXT" export HEADLESS="$HEADLESS_FLAG" set +e npx playwright test tests/linkedin-post.spec.js PLAYWRIGHT_EXIT_CODE=$? set -e RESULT_FILE="test-results/result.json" if [ -f "$RESULT_FILE" ]; then cat "$RESULT_FILE" echo else echo "{\"success\": false, \"error\": \"Test did not produce a result file\"}" exit 1 fi exit "$PLAYWRIGHT_EXIT_CODE"