FreedomBox/debian/tests/access-web-interface
Grayson Wolf 444b1f387a
d/t/access-web-interface: make ready check more robust
Test was failing (on Ubuntu) after an unrelated systemd update caused
things to be reordered enough to cause the 30 second time limit to
overrun, meaning apache wouldn't be ready and the test would fail.

Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-06-27 09:44:17 -04:00

40 lines
1.2 KiB
Bash

#!/bin/sh
set -e
# Wait for FreedomBox first-boot setup to complete and the web server to
# start listening. App setup order is not deterministic, so a fixed sleep can
# expire before the apache app configures port 443. Poll instead of guessing.
echo "Waiting for first-boot setup to complete..."
SETUP_COMPLETE=0
for _ in $(seq 1 120); do
if curl --fail --insecure --silent --output /tmp/fbx_status.json \
https://localhost/freedombox/status/; then
if grep -q '"is_first_setup_running"[[:space:]]*:[[:space:]]*false' /tmp/fbx_status.json; then
SETUP_COMPLETE=1
break
fi
fi
sleep 2
done
rm -f /tmp/fbx_status.json
if [ "$SETUP_COMPLETE" -eq 0 ]; then
echo "Error: first-boot setup did not complete in the allotted time." >&2
exit 1
fi
journalctl --unit=plinth --unit=freedombox-privileged
# Get FreedomBox status
curl --location --cookie "" --fail --write-out "%{response_code}" --insecure \
--stderr - https://localhost/freedombox/status/
# Access FreedomBox interface
curl --location --cookie "" --fail --write-out "%{response_code}" --insecure \
--stderr - https://localhost/freedombox/