#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)" GUARD_SOURCE="${ROOT_DIR}/scripts/check-ui-productization-coverage" TEMP_ROOT="$(mktemp -d "${TMPDIR:-/tmp}/ui-productization-guard.XXXXXX")" FAILED=0 trap 'rm -rf "${TEMP_ROOT}"' EXIT write_file() { local path="$1" local content="$2" mkdir -p "$(dirname "${path}")" printf '%b' "${content}" > "${path}" } append_file() { local path="$1" local content="$2" mkdir -p "$(dirname "${path}")" printf '%b' "${content}" >> "${path}" } setup_repo() { local case_id="$1" local repo="${TEMP_ROOT}/${case_id}" mkdir -p "${repo}" git -C "${repo}" init -q git -C "${repo}" config user.email "guard-validation@example.test" git -C "${repo}" config user.name "Guard Validation" mkdir -p "${repo}/scripts" cp "${GUARD_SOURCE}" "${repo}/scripts/check-ui-productization-coverage" chmod +x "${repo}/scripts/check-ui-productization-coverage" write_file "${repo}/apps/platform/app/Filament/Dashboard.php" ""${output_file}" 2>&1 status=$? set -e if [[ "${expected}" == "pass" && ${status} -eq 0 ]] || [[ "${expected}" == "fail" && ${status} -ne 0 ]]; then printf 'PASS %s (%s)\n' "${case_id}" "${expected}" return fi FAILED=1 printf 'FAIL %s expected %s but exit status was %s\n' "${case_id}" "${expected}" "${status}" >&2 sed 's/^/ /' "${output_file}" >&2 } run_case "ui_unchecked_template_heading_fails" "fail" "case_ui_unchecked_template_heading" run_case "ui_unchecked_spec_checkbox_fails" "fail" "case_ui_unchecked_spec_checkbox" run_case "ui_checked_impact_spec_passes" "pass" "case_ui_checked_impact_spec" run_case "ui_checked_no_impact_with_rationale_passes" "pass" "case_ui_checked_no_impact_with_rationale" run_case "ui_checked_no_impact_without_rationale_fails" "fail" "case_ui_checked_no_impact_without_rationale" run_case "ui_real_audit_coverage_artifact_passes" "pass" "case_ui_real_audit_coverage_artifact" run_case "navigation_provider_without_acknowledgment_fails" "fail" "case_navigation_provider_without_acknowledgment" run_case "navigation_provider_with_checked_acknowledgment_passes" "pass" "case_navigation_provider_with_checked_acknowledgment" run_case "backend_only_diff_passes" "pass" "case_backend_only_diff" run_case "docs_only_diff_passes" "pass" "case_docs_only_diff" run_case "untracked_guarded_ui_without_acknowledgment_fails" "fail" "case_untracked_guarded_ui_without_acknowledgment" if [[ ${FAILED} -ne 0 ]]; then exit 1 fi printf 'All UI/Productization Coverage guard validation cases passed.\n'