Files
kitadmin 24d8fbd366 fix: revert TUNNEL_LOCAL_SSH_PORT to 2223, fix registry, add incident docs
- wizard.sh + connect.conf: TUNNEL_LOCAL_SSH_PORT back to 2223 (Synology SSH port)
- port-registry: renamed x6340 → x4662 (matches QuickConnect ID)
- port-registry: added MR2200ac mesh satellite note for x4662
- deployment checklist: added kit-connect section, post-deployment rules,
  incident log, and complete fleet port registry table
- memory: added fleet-router-inventory.md with full fleet state
- hub README: updated with current status and locations

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 21:20:08 +00:00

74 lines
2.4 KiB
Bash

FIXTURES="$BATS_TEST_DIRNAME/../fixtures"
LIBDIR="$(cd "$BATS_TEST_DIRNAME/../.."/package/kit-busrouter/files/usr/lib/busrouter && pwd)"
setup() {
export LIB_DIR="$LIBDIR"
load '../../package/kit-busrouter/files/usr/lib/busrouter/telemetry.sh'
}
@test "gps_fix parse: 3D fix returns lat lon fix_quality=3" {
run _gps_parse < "$FIXTURES/gps-fix.txt"
[ "$status" -eq 0 ]
lat=$(echo "$output" | awk '{print $1}')
lon=$(echo "$output" | awk '{print $2}')
fix=$(echo "$output" | awk '{print $3}')
[ "$lat" = "40.712776" ]
[ "$lon" = "-74.005974" ]
[ "$fix" -eq 3 ]
}
@test "gps_fix parse: no-fix response exits 1" {
run _gps_parse < "$FIXTURES/gps-nofix.txt"
[ "$status" -ne 0 ]
[ -z "$output" ]
}
@test "gps_fix parse: empty input exits 1" {
run _gps_parse < /dev/null
[ "$status" -ne 0 ]
[ -z "$output" ]
}
# --- Task 5.2: telemetry collect + POST ---
@test "telemetry_collect: output contains required JSON keys" {
run telemetry_collect
[ "$status" -eq 0 ]
echo "$output" | grep -q '"device_id"'
echo "$output" | grep -q '"timestamp"'
echo "$output" | grep -q '"gps"'
echo "$output" | grep -q '"wan"'
echo "$output" | grep -q '"starlink"'
echo "$output" | grep -q '"sim_slot"'
echo "$output" | grep -q '"uptime"'
}
@test "telemetry_send: buffers payload when curl fails" {
mkdir -p "$BATS_TMPDIR/tel_stub"
printf '#!/bin/sh\nexit 7\n' > "$BATS_TMPDIR/tel_stub/curl"
chmod +x "$BATS_TMPDIR/tel_stub/curl"
export PATH="$BATS_TMPDIR/tel_stub:$PATH"
export TELEMETRY_HUB="http://10.88.0.1:8080/api/telemetry"
export TELEMETRY_BUFFER_DIR="$BATS_TMPDIR/tel_buf"
rm -rf "$TELEMETRY_BUFFER_DIR"
run telemetry_send
[ -d "$TELEMETRY_BUFFER_DIR" ]
buf_count=$(ls "$TELEMETRY_BUFFER_DIR"/*.json 2>/dev/null | wc -l)
[ "$buf_count" -ge 1 ]
}
@test "telemetry_flush: posts and removes buffered file on success" {
mkdir -p "$BATS_TMPDIR/tel_stub2"
printf '#!/bin/sh\necho 200\n' > "$BATS_TMPDIR/tel_stub2/curl"
chmod +x "$BATS_TMPDIR/tel_stub2/curl"
export PATH="$BATS_TMPDIR/tel_stub2:$PATH"
export TELEMETRY_HUB="http://10.88.0.1:8080/api/telemetry"
export TELEMETRY_BUFFER_DIR="$BATS_TMPDIR/tel_flush_buf"
mkdir -p "$TELEMETRY_BUFFER_DIR"
echo '{"test":1}' > "$TELEMETRY_BUFFER_DIR/1234567890_test.json"
run telemetry_flush
[ "$status" -eq 0 ]
[ ! -f "$TELEMETRY_BUFFER_DIR/1234567890_test.json" ]
}