From 0fa0f958b12d44ef2e877f2eac073dd6c6f65806 Mon Sep 17 00:00:00 2001 From: sganggs Date: Mon, 5 Oct 2026 15:48:14 +0800 Subject: [PATCH] =?UTF-8?q?feedback5=20WA:=20golden-result=20safety=20net?= =?UTF-8?q?=20before=20the=200.2.0=20refactor=20=E2=80=94=20tools/golden.m?= =?UTF-8?q?js=20runs=20a=20seeded=20corpus=20(49=20roster=20battles:=20eve?= =?UTF-8?q?ry=20chess=20record=20=C3=97=20skill=20=C3=97=20module,=20every?= =?UTF-8?q?=20stage=20and=20enemy=20kind;=2046=20bond=20battles;=2022=20le?= =?UTF-8?q?ader=20/=20=E8=81=94=E9=98=B2=20fields;=2016=20bot-only=20match?= =?UTF-8?q?es)=20and=20test/golden.test.js=20compares=20its=20digests=20wi?= =?UTF-8?q?th=20test/golden/*.json=20field=20by=20field=20(fast=20subset?= =?UTF-8?q?=20by=20default,=20GOLDEN=5FFULL=3D1=20for=20all;=20npm=20run?= =?UTF-8?q?=20golden=20/=20golden:update;=20test/golden/README.md)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 + docs/SIM.md | 5 + package.json | 2 + test/golden.test.js | 54 + test/golden/README.md | 57 + test/golden/bonds.json | 1800 +++++++++++++++++++++++ test/golden/fields.json | 1368 +++++++++++++++++ test/golden/matches.json | 1488 +++++++++++++++++++ test/golden/roster.json | 2997 ++++++++++++++++++++++++++++++++++++++ tools/golden.mjs | 1035 +++++++++++++ 10 files changed, 8808 insertions(+) create mode 100644 test/golden.test.js create mode 100644 test/golden/README.md create mode 100644 test/golden/bonds.json create mode 100644 test/golden/fields.json create mode 100644 test/golden/matches.json create mode 100644 test/golden/roster.json create mode 100644 tools/golden.mjs diff --git a/README.md b/README.md index cca3c3d7..f3777127 100644 --- a/README.md +++ b/README.md @@ -184,9 +184,11 @@ node --test # 单元 + 集成测试(约 3170 项;缺少素 SP_E2E=1 node --test test/ui/mock.e2e.test.js # 浏览器端到端测试,需要本机 Chrome(CHROME_PATH 可指定路径) SP_REAL_E2E=1 node --test test/ui/real.e2e.test.js # 需要 Chrome + 已下载的素材 RENDER_E2E=1 node --test 'test/render/*.browser.test.js' # 渲染测试,部分需要本地提取的棋盘贴图 +GOLDEN_FULL=1 node --test test/golden.test.js # 黄金结果:固定种子的整套战斗与人机对局摘要(默认只跑快速子集) ``` - 游戏数据由 `npm run build-data`(`tools/build-data.mjs`)从官方数据表生成,不要手工修改 `data/*.json`。 +- 只重构、不改玩法的提交不能改变 `test/golden/*.json`;有意改变玩法时运行 `npm run golden:update`,检查差异后随改动一起提交(见 [test/golden/README.md](test/golden/README.md))。 - GitHub Actions([.github/workflows/ci.yml](.github/workflows/ci.yml))在 Ubuntu 与 Windows、Node 22 / 24 上运行 `npm ci`、`node --test` 和服务器冒烟测试。 ## 项目结构 diff --git a/docs/SIM.md b/docs/SIM.md index 69863bcb..65c4c99a 100644 --- a/docs/SIM.md +++ b/docs/SIM.md @@ -1240,6 +1240,11 @@ prints a per-unit damage/DPS/kills/heal table (+ ASCII frames: letters = operato `^` = flyers, `■` = crates). `--wave