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.ps1API helper;登入後替指定 application/customer 上傳測試附件,補 application required docs 與 customer-level file typesJSON summary:已上傳/略過的 application docs、customer file types、required doc status、missing docs

ensure-base-fixtures.ps1

用途:在開瀏覽器前先確認測試 fixture 是否乾淨,避免一進 UI 才發現該權狀已被未結案申請卡住。

預設 fixture:

角色預設 authNo
towerZPB870004
tabletLOT1157002
ceremonyNF-029018

它會查 productstb_customertb_application_items / tb_applicationmanagement_fees,並回報:

  • productId
  • authNo
  • productType
  • customerId / customerName
  • positionId
  • productStatus
  • nonTerminalApplicationCount
  • activeManagementFeeCount
  • readyForModificationCreate

若未加 -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

輸出會包含:

  • uploadedApplicationDocs
  • skippedApplicationDocs
  • uploadedCustomerTypes
  • skippedCustomerTypes
  • requiredDocStatus
  • missingRequiredDocs

和 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 值。

相關