以下保留檔案原文,沒有改寫資料或結果。可使用「複製原始內容」取得完整檔案。
Feature: DEMO-PAYMENT 教學付款保護
# 固定需求 demo-contract-1;這份 Gherkin 是規格,並非本例的測試 runner。
@AC-DEMO-PAY-001
Scenario: 已付款重送不新增付款
Given paid-order 為 PAID 且已有一筆付款
When 再次 POST /payments 指定 paid-order
Then HTTP 狀態為 409 且 error 為 ORDER_ALREADY_PAID
And 訂單維持 PAID 且付款筆數仍為一
@AC-DEMO-PAY-002
Scenario: 未付款可以付款
Given pending-order 為 PENDING 且沒有付款
When POST /payments 指定 pending-order
Then HTTP 狀態為 200 且回應 status 為 PAID
And 訂單變為 PAID 且付款筆數為一
@AC-DEMO-PAY-003
Scenario: 空訂單編號被拒絕
Given pending-order 尚未付款
When POST /payments 的 order_id 為空字串
Then HTTP 狀態為 400 且 error 為 INVALID_REQUEST
And pending-order 的狀態與付款筆數不變
@AC-DEMO-PAY-004
Scenario: 不存在的訂單被拒絕
When POST /payments 指定 unknown-order
Then HTTP 狀態為 404 且 error 為 ORDER_NOT_FOUND
And 不新增訂單或付款
@AC-DEMO-PAY-005 @planned_not_executed
Scenario: 已付款畫面沒有付款入口
Given 瀏覽器開啟 PAID 訂單詳情
Then 付款區塊不在 DOM 且鍵盤無法聚焦付款按鈕
@AC-DEMO-PAY-006 @planned_not_executed
Scenario: 未付款畫面可完成付款
Given 瀏覽器開啟 PENDING 訂單詳情
When 使用者按付款且 API 成功
Then 畫面更新為 PAID 並移除付款入口