forked from niuniu/llm-intelligence
feat(phase1): OpenRouter采集器接入PostgreSQL,数据链路闭环
- 将 fetch_openrouter.go 的 summarize() 实现为 PostgreSQL upsert - 新增 -db 参数和 DATABASE_URL 环境变量支持 - 打通 models + model_prices 表的最小可运行链路 - 创建 llm_intelligence 数据库并运行 migration - 前端 Explorer 验证 T-3.2~T-3.5 全部通过 - 日报生成器正常产出 Markdown 和 latest_models.json
This commit is contained in:
56
scripts/verify_t33.sh
Executable file
56
scripts/verify_t33.sh
Executable file
@@ -0,0 +1,56 @@
|
||||
#!/bin/bash
|
||||
# verify_t33.sh — 验收 T-3.3:筛选过滤逻辑(严格版)
|
||||
set -e
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
||||
FILE="$PROJECT_ROOT/frontend/src/pages/Explorer.tsx"
|
||||
|
||||
echo "=== T-3.3 验收检查 ==="
|
||||
|
||||
# T-3.3.1: filterModels 函数存在
|
||||
if grep -q 'function filterModels' "$FILE"; then
|
||||
echo "filterModels PASS — filterModels 函数已定义"
|
||||
else
|
||||
echo "filterModels FAIL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# T-3.3.1: 组件声明存在
|
||||
if grep -q 'const ExplorerPage: React.FC = () =>' "$FILE"; then
|
||||
echo "ExplorerPage PASS — 组件声明存在"
|
||||
else
|
||||
echo "ExplorerPage FAIL — 缺少组件声明"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# T-3.3.2: filteredResults 共享变量存在
|
||||
if grep -q 'const filteredResults' "$FILE"; then
|
||||
echo "filteredResults PASS — 过滤结果收敛为 shared variable"
|
||||
else
|
||||
echo "filteredResults FAIL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# T-3.3.2: filterModels 在 JSX 中未被重复调用(只在 filteredResults 赋值处出现一次)
|
||||
# 允许出现 1 次(在赋值语句中),不允许在 JSX 渲染分支中出现
|
||||
call_count=$(grep -c 'filterModels(getMockModels(), filters)' "$FILE" || true)
|
||||
if [ "$call_count" -eq 1 ]; then
|
||||
echo "shared-var PASS — filterModels 仅在 filteredResults 赋值处调用一次"
|
||||
else
|
||||
echo "shared-var FAIL — filterModels 调用次数: $call_count(期望 1)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# T-3.3.2: filteredResults 被双视图共用(卡片和表格分支都用它)
|
||||
filtered_card=$(grep -c 'filteredResults.map.*card\|filteredResults.length.*card' "$FILE" || true)
|
||||
if grep -q 'filteredResults.length === 0' "$FILE" && \
|
||||
grep -q 'filteredResults.map' "$FILE"; then
|
||||
echo "dual-view PASS — filteredResults 同时被空判断和渲染分支引用"
|
||||
else
|
||||
echo "dual-view FAIL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "all PASS"
|
||||
exit 0
|
||||
Reference in New Issue
Block a user