diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9990ab0..07daad9 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -31,8 +31,6 @@ jobs: - uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - - name: Start mosquitto - run: mosquitto -c /etc/mosquitto/conf.d/default.conf -d - name: Install Packages run: yarn install --frozen-lockfile - name: Build Browser Mode @@ -59,8 +57,6 @@ jobs: - uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - - name: Start mosquitto - run: mosquitto -c /etc/mosquitto/conf.d/default.conf -d - name: Install Packages run: yarn install --frozen-lockfile - name: Build @@ -170,20 +166,10 @@ jobs: - uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - - name: Install and Start Mosquitto + - name: Install System Dependencies run: | sudo apt-get update sudo apt-get install -y mosquitto mosquitto-clients - - # Create a minimal configuration file for testing - sudo tee /etc/mosquitto/conf.d/test.conf > /dev/null < server.pid - env: - MQTT_EXPLORER_USERNAME: test - MQTT_EXPLORER_PASSWORD: test123 - PORT: 3000 - - name: Wait for Server - run: | - timeout 30 bash -c 'until curl -f http://localhost:3000; do sleep 1; done' - - name: Browser Smoke Test - run: | - # Test server is running - curl -f http://localhost:3000 || exit 1 - echo "Browser mode server is running successfully" - - name: Stop Server - if: always() - run: | - if [ -f server.pid ]; then - kill $(cat server.pid) || true - rm server.pid - fi + - name: Run Browser UI Tests + run: ./scripts/runBrowserTests.sh diff --git a/scripts/runBrowserTests.sh b/scripts/runBrowserTests.sh index 0f58ab9..4eb6800 100755 --- a/scripts/runBrowserTests.sh +++ b/scripts/runBrowserTests.sh @@ -2,7 +2,7 @@ # Browser Mode Test Runner # # This script runs UI tests against the browser mode server (instead of Electron). -# It expects a mosquitto MQTT broker to be running (via service or manually started). +# It starts a mosquitto MQTT broker automatically and cleans it up on exit. # The broker address is configured via environment variables. # # Environment Variables: @@ -23,10 +23,20 @@ function finish { echo "Stopping server ($PID_SERVER).." kill "$PID_SERVER" || echo "Already stopped" fi + + if [[ ! -z "$PID_MOSQUITTO" ]]; then + echo "Stopping mosquitto ($PID_MOSQUITTO).." + kill "$PID_MOSQUITTO" || echo "Already stopped" + fi } trap finish EXIT +# Start mqtt broker +mosquitto & +export PID_MOSQUITTO=$! +sleep 1 + # Set credentials for browser authentication (tests will use these to login) export MQTT_EXPLORER_USERNAME=${MQTT_EXPLORER_USERNAME:-test} export MQTT_EXPLORER_PASSWORD=${MQTT_EXPLORER_PASSWORD:-test123}