test: 添加核心服务回归测试

- 为存储、词库、记忆调度、MIME 解析、单词提取、测验生成及备份处理添加 Node.js 测试
- 添加可复用的浏览器环境与 localStorage 测试辅助工具
- 修复移除 HTML 时单词边界丢失的问题,并拒绝无效的测验答案
- 校验导入备份中的日期,并添加 npm 测试脚本
This commit is contained in:
eddy
2026-07-19 23:57:27 +08:00
parent adf4f9d93a
commit 438b6cb7bb
14 changed files with 950 additions and 9 deletions
+1 -1
View File
@@ -171,7 +171,7 @@ src/
## 十一、可选增强(本轮不做,另开任务)
- [ ] 引入 Vite:解决模块数量多时的请求瀑布与缓存指纹问题,`vite build` 产物仍是纯静态文件。
- [ ] 为纯函数模块(ebbinghaus / quiz-generator / mime / extractor)加 `node:test` 单元测试 —— 模块化后这些可直接在 Node 里测,只需一个 dev-only 的 package.json
- [x] 添加 `node:test` 单元测试(54 项):覆盖 ebbinghaus / quiz-generator / mime / extractor,以及 storage 数据兼容与异常、复习状态持久化回滚、备份导入导出与清空、词库切换/加载/竞态回滚;测试发现并修复相邻 HTML 标签导致单词粘连、空 AI 答案被误判为索引 0、备份接受无效日历日期的问题
- [ ] state 写入收口为 action 函数,配合 `saveXxx` 自动持久化。
- [ ] HTML 模板字符串改为 `<template>` 或轻量渲染函数,减少字符串拼接。
- [ ] PWAmanifest + Service Worker)替代手动 `?v=` 缓存控制。