test(contract): 第2刀b Dart 契约快照(stats + /v1 API 字段面冻结)

支柱 2(契约单源)守门 — 堵 mac-stats-0 一类跨进程契约悄悄分叉:
- test/contract/stats_contract_test.dart:冻结 pangolin/vpn/stats payload
  字段面 + status 四值,改契约即测试红、逼同步原生产出端 + 文档
- test/contract/api_contract_test.dart:冻结 /v1/me、/v1/usage、
  /v1/usage/devices 的 snake_case 字段面
- ci.yml:flutter job 测试纳入 test/contract;本地 15 用例全过

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-06-24 23:32:00 +08:00
parent c34d8d8fb5
commit 149aa90cfa
3 changed files with 237 additions and 1 deletions
+1 -1
View File
@@ -77,7 +77,7 @@ jobs:
docker run --rm \
-v "$PWD/client:/app" -w /app \
ghcr.io/cirruslabs/flutter:stable \
bash -c "flutter pub get && flutter analyze && flutter test test/unit test/widget"
bash -c "flutter pub get && flutter analyze && flutter test test/unit test/widget test/contract"
# ── Job 5: Portable SQL Scan (支柱 3:双库可移植)─────────────────────────
# server Go 运行时查询不得含 MySQL 专属构造(同一份 SQL 要跑 mysql 与 sqlite)。