- frontend-architecture-refactor: 拆分 hooks/组件、类型筛选器动态化 - http-checker-quality-hardening: ReDoS 防护、failure 格式修正、测试补全
2.6 KiB
2.6 KiB
1. failure actual 截断
- 1.1 修改
src/server/checker/expect/failure.ts中truncateActual函数,截断后缀从...改为…(共 N 字符),其中省略号为单字符 U+2026 - 1.2 更新
tests/server/checker/runner/shared/failure.test.ts中截断相关测试断言,匹配新格式(检查省略号为单字符且带字符计数)
2. ReDoS 防护
- 2.1 在
src/server/checker/expect/下新增redos.ts,实现isUnsafeRegex(pattern: string): boolean函数,检测嵌套量词模式 - 2.2 在
src/server/checker/runner/http/validate.ts的validateRegexRule和src/server/checker/expect/validate-operator.ts的 match 校验中调用isUnsafeRegex,不安全时返回 issue - 2.3 在
tests/server/checker/runner/http/runner.test.ts中补充 ReDoS 正则启动校验失败的测试用例 - 2.4 在
tests/server/checker/runner/shared/下新增redos.test.ts,覆盖常见 ReDoS 模式和安全正则的判定
3. JSON parse 优化
- 3.1 修改
src/server/checker/runner/http/body.ts中checkBodyExpect函数,维护 parsedJson 缓存状态,首次 json 规则 parse 后复用结果 - 3.2 修改
checkJsonRule签名接受可选的预解析 JSON 对象,避免重复JSON.parse - 3.3 在
tests/server/checker/runner/shared/body.test.ts中补充多条 json 规则共享 parse 结果的测试(验证行为正确性)
4. CSS 规则精简
- 4.1 重构
src/server/checker/runner/http/body.ts中checkCssRule为线性流程:解析 HTML → exists:false 短路 → 查找元素 → exists:true 短路 → 提取值 → operator 匹配 - 4.2 确认
tests/server/checker/runner/shared/body.test.ts中现有 CSS 测试全部通过
5. execute.ts 精简
- 5.1 将
src/server/checker/runner/http/execute.ts第 56-74 行的提前 duration 检查提取为checkEarlyTimeout辅助函数,明确意图
6. 补充测试
- 6.1 在
tests/server/checker/runner/http/runner.test.ts中补充 303 重定向 method 转 GET 的测试 - 6.2 在
tests/server/checker/runner/http/runner.test.ts中补充 307/308 保持原始 method 和 body 的测试 - 6.3 在
tests/server/checker/runner/http/runner.test.ts中补充相对路径 Location header 重定向的测试 - 6.4 在
tests/server/checker/runner/http/runner.test.ts中补充混合 body rules(contains + json + css)集成测试
7. 质量保障
- 7.1 执行完整测试套件
bun test、代码检查bun run lint、格式检查bun run format:check确保无回归 - 7.2 更新 DEVELOPMENT.md 中 ReDoS 校验相关说明(如有必要)