Files
star-erp/tests/manual/test_integration_api.sh
sky121113 2f30a78118
All checks were successful
Koori-ERP-Deploy-System / deploy-demo (push) Has been skipped
Koori-ERP-Deploy-System / deploy-production (push) Successful in 56s
feat(integration): 實作並測試 POS 與販賣機訂單同步 API
主要變更:
- 實作 POS 與販賣機訂單同步邏輯,支援多租戶與 Sanctum 驗證。
- 修正多租戶識別中間件與 Sanctum 驗證順序問題。
- 切換快取驅動至 Redis 以支援 Tenancy 標籤功能。
- 新增商品同步 API (Upsert) 及相關單元測試。
- 新增手動測試腳本 tests/manual/test_integration_api.sh。
- 前端新增銷售訂單來源篩選與欄位顯示。
2026-02-23 13:27:12 +08:00

84 lines
2.1 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Star ERP 整合 API 手動測試腳本
# 用途手動驗證商品同步、POS 訂單、販賣機訂單 API
# --- 設定區 ---
BASE_URL=${1:-"http://localhost:8081"}
TOKEN=${2:-"YOUR_TOKEN_HERE"}
TENANT_DOMAIN="localhost"
echo "=== Star ERP Integration API Test ==="
echo "Target URL: $BASE_URL"
echo "Tenant Domain: $TENANT_DOMAIN"
echo ""
# 顏色定義
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m'
# 輔助函式:執行 curl
function call_api() {
local method=$1
local path=$2
local data=$3
local title=$4
echo -e "Testing: ${GREEN}$title${NC} ($path)"
curl -s -X "$method" "$BASE_URL$path" \
-H "X-Tenant-Domain: $TENANT_DOMAIN" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d "$data" | jq .
echo -e "-----------------------------------\n"
}
# 1. 商品同步 (Upsert)
PRODUCT_ID="TEST-AUTO-$(date +%s)"
call_api "POST" "/api/v1/integration/products/upsert" "{
\"external_pos_id\": \"$PRODUCT_ID\",
\"name\": \"自動測試商品 $(date +%H%M%S)\",
\"price\": 150,
\"barcode\": \"690123456789\",
\"category\": \"飲品\",
\"cost_price\": 80
}" "Product Upsert"
# 2. POS 訂單同步
call_api "POST" "/api/v1/integration/orders" "{
\"external_order_id\": \"POS-AUTO-$(date +%s)\",
\"status\": \"completed\",
\"payment_method\": \"cash\",
\"sold_at\": \"$(date -Iseconds)\",
\"warehouse_id\": 2,
\"items\": [
{
\"pos_product_id\": \"TEST-FINAL-VERIFY\",
\"qty\": 1,
\"price\": 100
}
]
}" "POS Order Sync"
# 3. 販賣機訂單同步
call_api "POST" "/api/v1/integration/vending/orders" "{
\"external_order_id\": \"VEND-AUTO-$(date +%s)\",
\"machine_id\": \"Vending-Machine-Test-01\",
\"payment_method\": \"line_pay\",
\"sold_at\": \"$(date -Iseconds)\",
\"warehouse_id\": 2,
\"items\": [
{
\"product_code\": \"FINAL-OK\",
\"qty\": 2,
\"price\": 50
}
]
}" "Vending Machine Order Sync"
echo "Test Completed."