OAFRONT3 补足PC只读视觉证据
这个提交包含在:
@@ -0,0 +1,69 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
CLIENT_DIR="$ROOT_DIR/client"
|
||||
PUBLIC_BASE_URL="${LIVE_SMOKE_BASE_URL:-https://oa.hyinda.com}"
|
||||
REPORT_DIR="${OAFRONT3_PC_REPORT_DIR:-$ROOT_DIR/artifacts/qa-flow/oafront3-pc-readonly-visual-$(date +%Y%m%d-%H%M%S)}"
|
||||
OUTPUT_DIR="${OAFRONT3_PC_OUTPUT_DIR:-$ROOT_DIR/output/playwright/oafront3-pc-readonly}"
|
||||
|
||||
load_default_env() {
|
||||
local env_file="${OAFRONT3_ENV_FILE:-$HOME/.hyb-oa/live-smoke.env}"
|
||||
if [[ "${OAFRONT3_SKIP_ENV_FILE:-0}" == "1" || ! -f "$env_file" ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
set -a
|
||||
# shellcheck disable=SC1090
|
||||
source "$env_file"
|
||||
set +a
|
||||
PUBLIC_BASE_URL="${LIVE_SMOKE_BASE_URL:-$PUBLIC_BASE_URL}"
|
||||
echo "[oafront3] loaded masked live smoke env file"
|
||||
}
|
||||
|
||||
write_fallback_summary() {
|
||||
local exit_code="$?"
|
||||
if [[ -f "$REPORT_DIR/summary.json" ]]; then
|
||||
return "$exit_code"
|
||||
fi
|
||||
|
||||
mkdir -p "$REPORT_DIR"
|
||||
QA_REPORT_DIR="$REPORT_DIR" \
|
||||
QA_ISSUE_ID="OAFRONT3-1" \
|
||||
QA_BASE_URL="$PUBLIC_BASE_URL" \
|
||||
QA_MODE="pc-readonly-visual-evidence" \
|
||||
QA_STATUS="FAIL" \
|
||||
QA_SUMMARY_NOTES="Playwright 未生成 summary.json;查看脚本日志和 playwright-report。" \
|
||||
node "$ROOT_DIR/scripts/qa/write-qa-summary.mjs" >/dev/null 2>&1 || true
|
||||
return "$exit_code"
|
||||
}
|
||||
|
||||
run_privacy_smoke() {
|
||||
local sensitive_pattern='(["'\''"]?(WECOM_[A-Z0-9_]*(SECRET|TOKEN)|[A-Z0-9_]*(TOKEN|SECRET|PASSWORD|ENCODING_AES_KEY|ENCODINGAESKEY|CORP_SECRET|ACCESS_TOKEN)[A-Z0-9_]*)["'\''"]?[[:space:]]*[:=][[:space:]]*["'\''"]?[A-Za-z0-9._:/+=-]{8,}["'\''"]?)|Authorization:[[:space:]]*Bearer[[:space:]]+[A-Za-z0-9._-]{8,}|access_token=[A-Za-z0-9._-]{8,}|1[3-9][0-9]{9}|[[:alnum:]._%+-]+@[[:alnum:].-]+\.[[:alpha:]]{2,}|-----BEGIN|BEGIN [A-Z ]*KEY|"((token|secret|password|EncodingAESKey|encodingAESKey|sp_no|spNo|template_id|templateId|userid|userId|external_userid|externalUserId))"[[:space:]]*:[[:space:]]*"[^"*]{8,}"|\b20[0-9]{12,}\b|"(raw|rawPayload|raw_payload|payload|xml|ciphertext|Encrypt|formValue|formValues|attachments|comments)"[[:space:]]*:'
|
||||
local matches
|
||||
matches="$(grep -RInE "$sensitive_pattern" "$REPORT_DIR" || true)"
|
||||
if [[ -n "$matches" ]]; then
|
||||
printf '%s\n' "$matches" >&2
|
||||
echo "[oafront3][FAIL] report privacy smoke matched sensitive pattern" >&2
|
||||
return 1
|
||||
fi
|
||||
echo "[oafront3][PASS] report privacy smoke"
|
||||
}
|
||||
|
||||
trap write_fallback_summary EXIT
|
||||
|
||||
load_default_env
|
||||
mkdir -p "$REPORT_DIR" "$OUTPUT_DIR"
|
||||
|
||||
echo ">>> [oafront3] PC readonly visual evidence base=$PUBLIC_BASE_URL"
|
||||
(
|
||||
cd "$CLIENT_DIR"
|
||||
E2E_MODE=live \
|
||||
LIVE_SMOKE_BASE_URL="$PUBLIC_BASE_URL" \
|
||||
OAFRONT3_PC_REPORT_DIR="$REPORT_DIR" \
|
||||
OAFRONT3_PC_OUTPUT_DIR="$OUTPUT_DIR" \
|
||||
npx playwright test tests/e2e/oafront3-pc-readonly-visual.spec.ts --workers=1 --reporter=list
|
||||
)
|
||||
|
||||
run_privacy_smoke
|
||||
echo "[oafront3] summary=$REPORT_DIR/summary.json"
|
||||
在新工单中引用
屏蔽一个用户