mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 16:00:43 +00:00
补充:那个 JS bug 在做完修复之后又踩了一次(同一个坑,第二次)
在真实中转上实测管理页时,node --check 报第 46 行语法错。
出事的是注释:
// ⚠ 这里必须是 \\n(反斜杠+n),不能是 \n ——
^^^^ 被 Python 变成真换行
**注释为了举例说明「不能写那个转义」,自己写了一个转义**,
于是注释被断成两行,整段 <script> 语法错误,
管理页所有按钮(改码/删除/批量删除/全选)全部失效。
修法:注释改成一个转义序列都不写,只用文字描述。
新增两道防线:
* _tests/test_admin_js_syntax.py(回归阶段 3a6)
本地渲染管理页 -> node --check。不连中转就能查出来。
* _tests/test_admin_live.py
真实中转上走 HTTP 实测两个功能(16/17 通过,唯一失败就是这个 bug)。
它依赖线上设备,不进回归套件。
原来那个「管理页 JS 合法性」阶段只查 token 在不在,查不出语法错。
「测过」和「能用」是两件事 —— 这句话这轮被验证了两次。
部署时机:发现时 relay-stability 正在跑隧道 A/B,部署要重启中转
会打断对照,所以故意押后到对照跑完。
This commit is contained in:
@@ -319,6 +319,47 @@ _tests/test_relay_local.py:之前完全卡死 -> 现在 21/21 全过
|
||||
> 「23 项测试通过」和「功能能用」是两件事 —— 管理页那个 JS bug
|
||||
> 就是在 23 项全绿的情况下进去的,测试只查 token 存不存在,不查语法。
|
||||
|
||||
### 7.1 那个 JS bug 后来又踩了一遍(同一个坑,第二次)
|
||||
|
||||
**在做完上面这些修复之后,加「改码」功能时又踩了一次,而且更讽刺。**
|
||||
|
||||
在**真实中转**上实测管理页时,用 `node --check` 检查页面内嵌的 JS:
|
||||
|
||||
```
|
||||
SyntaxError: Invalid or unexpected token (第 46 行)
|
||||
```
|
||||
|
||||
出事的是这段注释(`admin.py` 源码):
|
||||
|
||||
```python
|
||||
// ⚠ 这里必须是 \\n(反斜杠+n),不能是 \n ——
|
||||
^^^^
|
||||
这个 \n 被 Python 变成真实换行
|
||||
```
|
||||
|
||||
**注释为了举例说明「不能写 `\n`」,自己写了一个 `\n`。**
|
||||
于是注释被断成两行,`//` 行注释不能跨行 → 整段 `<script>` 语法错误
|
||||
→ **管理页所有按钮(改码/删除/批量删除/全选)全部失效**。
|
||||
|
||||
**修法**:注释改成**一个转义序列都不写**,只用文字描述。
|
||||
|
||||
**新增两道防线**:
|
||||
|
||||
1. `_tests/test_admin_js_syntax.py`(回归阶段 3a6)
|
||||
**本地渲染管理页**,把 `<script>` 抠出来喂给 `node --check`。
|
||||
这是最快的复现方式 —— 不连中转、不起服务器就能查出来。
|
||||
|
||||
2. `_tests/test_admin_live.py`
|
||||
在**真实中转**上走 HTTP 实测两个功能(16/17 通过,
|
||||
唯一失败就是上面这个 bug)。它依赖线上设备,不进回归套件。
|
||||
|
||||
**为什么原来查不出来**:已有的「管理页 JS 合法性」阶段只检查
|
||||
token 在不在,不查语法。**「测过」和「能用」是两件事** ——
|
||||
这句话在这一轮被验证了两次。
|
||||
|
||||
> 部署时机:发现时 relay-stability 正在跑隧道配比 A/B,
|
||||
> 部署要重启中转服务会打断对照,所以**故意押后到对照跑完再部署**。
|
||||
|
||||
---
|
||||
|
||||
## 八、测试工具自己骗人(本轮踩了两次)
|
||||
|
||||
Reference in New Issue
Block a user