docs: 说明 test-qr 的参考实现前置条件

test-qr.mjs 需要一个 npm qrcode 作为对照(仅测试用,非运行时依赖),
但脚本与 README 都没说明如何准备,克隆后直接 npm test 会在这一步失败。
现在脚本直接打印可复制的准备命令,README 中英双语也补充了说明与
QR_ORACLE_DIR 的用法。
This commit is contained in:
2026-09-27 04:23:31 +08:00
parent dbfdfda60d
commit 304379c80c
3 changed files with 9 additions and 0 deletions
+3
View File
@@ -125,6 +125,9 @@ adaptive choice, remove the last three entries of `cordis.patch.yml` (the
node scripts/build-client.mjs # generates client.js from src/panel.js + src/qrcode.js node scripts/build-client.mjs # generates client.js from src/panel.js + src/qrcode.js
node scripts/smoke.mjs # host forwarding contract (HTTP/WS/Host/Origin/cookie/bind failure) node scripts/smoke.mjs # host forwarding contract (HTTP/WS/Host/Origin/cookie/bind failure)
node scripts/test-qr.mjs # module-by-module comparison against the npm qrcode reference node scripts/test-qr.mjs # module-by-module comparison against the npm qrcode reference
# test-qr.mjs compares against a reference implementation (test-only, never a runtime dep):
# mkdir -p /tmp/qr-oracle && cd /tmp/qr-oracle && npm init -y && npm i qrcode@1.5.4
# elsewhere: QR_ORACLE_DIR=<dir> node scripts/test-qr.mjs
node scripts/test-client.mjs # browser contract (slot registration, render, route agreement) node scripts/test-client.mjs # browser contract (slot registration, render, route agreement)
``` ```
+3
View File
@@ -126,6 +126,9 @@ DSH 官方把「持久化设置」限制在回环页面:客户端由 `location
node scripts/build-client.mjs # 由 src/panel.js + src/qrcode.js 生成 client.js node scripts/build-client.mjs # 由 src/panel.js + src/qrcode.js 生成 client.js
node scripts/smoke.mjs # 宿主端转发契约(HTTP/WS/Host/Origin/cookie/绑定失败) node scripts/smoke.mjs # 宿主端转发契约(HTTP/WS/Host/Origin/cookie/绑定失败)
node scripts/test-qr.mjs # 与 npm qrcode 参考实现逐模块比对 node scripts/test-qr.mjs # 与 npm qrcode 参考实现逐模块比对
# test-qr.mjs 需要一个“参考实现”作为对照(仅测试用,不是运行时依赖):
# mkdir -p /tmp/qr-oracle && cd /tmp/qr-oracle && npm init -y && npm i qrcode@1.5.4
# 放在别处就用 QR_ORACLE_DIR=<dir> node scripts/test-qr.mjs
node scripts/test-client.mjs # 浏览器端契约(槽位注册、渲染、路由一致) node scripts/test-client.mjs # 浏览器端契约(槽位注册、渲染、路由一致)
``` ```
+3
View File
@@ -16,6 +16,9 @@ try {
oracle = requireFromOracle('qrcode') oracle = requireFromOracle('qrcode')
} catch (error) { } catch (error) {
console.error(`cannot load the qrcode oracle from ${oracleDir}: ${error.message}`) console.error(`cannot load the qrcode oracle from ${oracleDir}: ${error.message}`)
console.error('prepare it once with:')
console.error(` mkdir -p ${oracleDir} && cd ${oracleDir} && npm init -y && npm i qrcode@1.5.4`)
console.error(`or point QR_ORACLE_DIR at a directory that already has it.`)
process.exit(2) process.exit(2)
} }