#!/usr/bin/env bash # ============================================================ # dusk — Wrapper chạy Laravel Dusk tests # # Cách dùng: # ./dusk # Có giao diện Chrome (mặc định) # ./dusk --headless # Chạy headless (không mở cửa sổ) # ./dusk --headless --filter=BulkWorkflowTest # ./dusk --filter=AdminPrizeTest # # Tất cả tham số còn lại được chuyển thẳng sang php artisan dusk. # ============================================================ set -e HEADLESS=0 ARTISAN_ARGS=() for arg in "$@"; do if [[ "$arg" == "--headless" ]]; then HEADLESS=1 else ARTISAN_ARGS+=("$arg") fi done if [[ $HEADLESS -eq 1 ]]; then echo "[dusk] Chạy HEADLESS (không mở cửa sổ Chrome)" # Set DUSK_HEADLESS=true trước khi PHP khởi động. # Laravel dùng Dotenv::createImmutable() → OS env var có độ ưu tiên cao hơn .env # → DUSK_HEADLESS_DISABLED trong .env sẽ bị bỏ qua bởi hasHeadlessDisabled() exec env DUSK_HEADLESS=true php artisan dusk "${ARTISAN_ARGS[@]}" else echo "[dusk] Chạy có giao diện Chrome (DUSK_HEADLESS_DISABLED=true)" exec php artisan dusk "${ARTISAN_ARGS[@]}" fi