Tighten Pi signage HDMI settle coverage
This commit is contained in:
64
apps/fc-signage-pi-player/tests/identity_bootstrap.bats
Normal file
64
apps/fc-signage-pi-player/tests/identity_bootstrap.bats
Normal file
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bats
|
||||
|
||||
setup() {
|
||||
APP_ROOT="$(cd "$BATS_TEST_DIRNAME/.." && pwd)"
|
||||
BOOTSTRAP="$APP_ROOT/scripts/flowercore-signage-bootstrap.sh"
|
||||
RENEW="$APP_ROOT/scripts/flowercore-signage-renew-cert.sh"
|
||||
}
|
||||
|
||||
@test "bootstrap is idempotent when node is already enrolled" {
|
||||
script="$(cat "$BOOTSTRAP")"
|
||||
[[ "$script" == *'[[ -s "$NODE_JSON" && -s "$CERT_DIR/client.p12" ]]'* ]]
|
||||
[[ "$script" == *"already enrolled"* ]]
|
||||
[[ "$script" == *"exit 0"* ]]
|
||||
}
|
||||
|
||||
@test "bootstrap generates a stable node uuid and machine id" {
|
||||
script="$(cat "$BOOTSTRAP")"
|
||||
[[ "$script" == *"uuidgen"* ]]
|
||||
[[ "$script" == *"nodeUuid"* ]]
|
||||
[[ "$script" == *"machineId"* ]]
|
||||
[[ "$script" == *"cut -c1-16"* ]]
|
||||
}
|
||||
|
||||
@test "bootstrap posts to the canonical register endpoint" {
|
||||
grep -q '/api/v1/nodes/register' "$BOOTSTRAP"
|
||||
grep -q '"linux-arm64-pi"' "$BOOTSTRAP"
|
||||
}
|
||||
|
||||
@test "bootstrap retries registration once for first-call races" {
|
||||
script="$(cat "$BOOTSTRAP")"
|
||||
[[ "$script" == *"for attempt in 1 2"* ]]
|
||||
[[ "$script" == *"register attempt \$attempt returned"* ]]
|
||||
[[ "$script" == *"sleep 5"* ]]
|
||||
}
|
||||
|
||||
@test "bootstrap supports setup-code approval with manual polling fallback" {
|
||||
script="$(cat "$BOOTSTRAP")"
|
||||
[[ "$script" == *"signage-setup-code"* ]]
|
||||
[[ "$script" == *"approve-via-setup-code"* ]]
|
||||
[[ "$script" == *"+ 1800"* ]]
|
||||
[[ "$script" == *"sleep 15"* ]]
|
||||
}
|
||||
|
||||
@test "bootstrap generates an ecdsa p256 csr for the signage pi subject" {
|
||||
script="$(cat "$BOOTSTRAP")"
|
||||
[[ "$script" == *"ecparam -genkey -name prime256v1"* ]]
|
||||
[[ "$script" == *'/CN=${NODE_ID}/O=FlowerCore/OU=SignagePlayer-Pi'* ]]
|
||||
}
|
||||
|
||||
@test "bootstrap writes pkcs12 bundle with restrictive permissions" {
|
||||
script="$(cat "$BOOTSTRAP")"
|
||||
[[ "$script" == *"openssl pkcs12 -export"* ]]
|
||||
[[ "$script" == *"client.p12.pass"* ]]
|
||||
[[ "$script" == *"chmod 0640"* ]]
|
||||
[[ "$script" == *"chmod 0600"* ]]
|
||||
}
|
||||
|
||||
@test "renewal only calls renew endpoint inside the thirty-day window and swaps atomically" {
|
||||
script="$(cat "$RENEW")"
|
||||
[[ "$script" == *'-checkend $((30*24*3600))'* ]]
|
||||
[[ "$script" == *"/api/v1/nodes/\${NODE_ID}/renew"* ]]
|
||||
[[ "$script" == *"client.key.new"* ]]
|
||||
[[ "$script" == *'mv "$CERT_DIR/client.p12.new" "$CERT_DIR/client.p12"'* ]]
|
||||
}
|
||||
Reference in New Issue
Block a user