issue #249 fixture scripts
這頁整理 issue #249 後續 UI/申請單測試會用到的兩支 PowerShell helper。它們不是業務規則,也不是用來直接「造出通過結果」的 seed;它們是測試前置檢查與必附文件補件工具。
scripts
| Script | 角色 | 主要輸出 |
|---|---|---|
tasks/issue249/ensure-base-fixtures.ps1 | 基礎 fixture preflight;確認塔/蓮/禮儀三筆指定權狀存在、產品狀態、客戶、位置、進行中申請數、active management fee 數 | human-readable preflight;加 -Json 可輸出 JSON;若有 blocker 以 exit 2 結束 |
tasks/issue249/upload-required-docs.ps1 | API helper;登入後替指定 application/customer 上傳測試附件,補 application required docs 與 customer-level file types | JSON summary:已上傳/略過的 application docs、customer file types、required doc status、missing docs |
ensure-base-fixtures.ps1
用途:在開瀏覽器前先確認測試 fixture 是否乾淨,避免一進 UI 才發現該權狀已被未結案申請卡住。
預設 fixture:
| 角色 | 預設 authNo |
|---|---|
| tower | ZPB870004 |
| tablet | LOT1157002 |
| ceremony | NF-029018 |
它會查 products、tb_customer、tb_application_items / tb_application、management_fees,並回報:
productIdauthNoproductTypecustomerId/customerNamepositionIdproductStatusnonTerminalApplicationCountactiveManagementFeeCountreadyForModificationCreate
若未加 -SkipCustomerUploads,它會對每個 fixture customer 呼叫 upload-required-docs.ps1 -AllConfigured,先補 customer-level 文件。
常用形狀:
$env:PGPASSWORD = '<db password>'
.\tasks\issue249\ensure-base-fixtures.ps1 -Json判讀規則:
readyForModificationCreate = true才適合進 UI 建異動申請。blockers非空時,不要硬跑瀏覽器;先分類為blocked-by-fixture或換 fixture。activeManagementFeeCount是 fixture 條件,不是通過證明;涉及管理費副作用仍要做 UI/API/DB 結果斷言。
upload-required-docs.ps1
用途:用 API 補測試附件,讓申請單完成 gate 不被「必附文件未上傳」卡住。它支援 application-level required docs 與 customer-level file types。
輸入方式:
| 參數 | 用途 |
|---|---|
-ApplicationId | 直接指定申請單 id |
-ApplicationNo | 先查 /Query/Application 轉成 application id |
-CustomerId | 只補 customer-level files |
-AllConfigured | 查 /ApplicationFormSetting/required-documents,補所有設定過的 required docs/customer file types |
-SkipCustomerLevel | 不補 customer-level files |
-Force | 已存在也重新上傳 |
-FilePath | 預設 tasks/attachments/issue249/codex-test-1x1.png |
常用形狀:
.\tasks\issue249\upload-required-docs.ps1 -ApplicationNo APP2600000
.\tasks\issue249\upload-required-docs.ps1 -CustomerId 12345 -AllConfigured輸出會包含:
uploadedApplicationDocsskippedApplicationDocsuploadedCustomerTypesskippedCustomerTypesrequiredDocStatusmissingRequiredDocs
和 UI 驗證規則的邊界
這兩支 script 可以用於 setup / preflight,但不能取代 UI 行為證據。
- 要驗「上傳流程本身」時,仍要走申請單詳情頁的文件列上傳,不可只用
upload-required-docs.ps1。 - 要驗「完成申請」時,script 可補前置 gate,但完成按鈕、完成後狀態、查詢/統計反映仍要用 UI 或 focused API/DB 斷言。
- 直接 Media API upload 可能落到「其他附件」而非 required-doc row;這個 helper 透過 description 盡量對齊 required-doc 名稱,但最終仍應回查 required doc status。
來源狀態
tasks/issue249/README.md 已標記為 deprecated:通用 UI 自動化規則已抽到 effective-ui-testing。但 issue #249 的 fixture 歷史、case matrix 與這兩支 helper 仍有重用價值;使用前要以現行 DB/API 狀態重新 preflight,不要相信 README 裡 2026-07-02/03 的靜態 fixture 值。