Files
llm-intelligence/scripts/verify_t33.sh
Your Name ba054f04cf 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
2026-05-08 13:49:12 +08:00

57 lines
1.8 KiB
Bash
Executable File
Raw 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
# 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