FeedLantern 本地验收记录
验收日期:2026-09-06。测试使用独立数据目录、合成 Cookie 和可重复的本地页面,不使用个人登录凭据。
环境与命令
本机:macOS、Node.js 26.7.0、pnpm 11.25.0、Playwright 1.63.0 / Chromium 153。项目目标与 CI 为 Node.js 24 LTS。
sh
pnpm build
PLAYWRIGHT_BROWSERS_PATH=0 pnpm test
PLAYWRIGHT_BROWSERS_PATH=0 pnpm test:e2ePLAYWRIGHT_BROWSERS_PATH=0 对应本机安装位置;其他机器使用默认缓存安装时不需要此变量。Chromium 测试需要系统允许启动沙箱进程。跳过浏览器测试的结果不算验收通过。
本地结果:30 项单元 / 集成 / Chromium DOM 测试通过,11 项端到端测试通过,类型检查与生产构建通过。两个用户提供的公开站点已通过自动推荐复验,详见公开网站记录。
覆盖的行为
| 场景 | 验证方式 |
|---|---|
| 普通文章列表及可选字段 | 实际 DOM 自动检测与预览,核对标题、链接、摘要、图片和日期 |
| 非语义卡片、整卡链接和表格列表 | Chromium 渲染 fixture,检查保存的相对选择器及绝对 URL |
| 导航、多列表与元信息干扰 | 检查候选排序、歧义提示及重复日期标签的标题纠偏 |
| 动态页面、懒加载图片 | 延迟插入内容及 data-src 图片;自动识别与同一提取器预览 |
| Cookie header / JSON | 浏览器访问需 Cookie 的页面、错误凭据不可读、不同上下文隔离;元数据不含值 |
| 字段缺失、日期稳定 | 不用整页内容补字段,不为缺失年份或相对时间编造日期 |
| 手动纠偏 | 截图缩放点选、选择器修改及手动来源保存 |
| 改版、抓取失败 | 原条目保留,错误可见;恢复页面后可继续更新 |
| 登录与授权 | 初始化、Host / CSRF、未登录 API 拒绝、改密撤销会话、IP 登录限速和命令重置 |
| RSS | 独立 XML 解析器解析、内容转义、图片 URL 验证、订阅密钥轮换 |
| 持久化与调度 | 关闭并重新打开 SQLite,恢复凭据、历史、订阅密钥和到期后台刷新 |
| 并发 | 不同订阅后台抓取排队;编辑等待旧抓取结束,新规则结果不被旧抓取覆盖 |
| 网络边界 | 私网 / 特殊地址与恶意重定向拦截、精确主机端口例外和代理连接清理 |
| 网页体验 | 浏览器完成创建、保存、复制地址和轮换,桌面与手机布局检查 |
具体断言见 tests/*.test.ts、tests/e2e/*.spec.ts。测试截图和失败 trace 只写入 Git 忽略的测试目录,CI 不发布这些产物。
公开页面与适用范围
公开网站记录 单独列出真实 URL、执行结果和环境限制。公网响应、站点改版、反自动化机制都会改变结果。fixture 通过和某一次公开页面成功,均不能证明所有网站可用。
本版本不包含全文、翻页、无限滚动采集、交互登录和验证码处理;iframe、封闭 Shadow DOM、Canvas 内部选取也不在验收范围内。Windows、容器镜像和安装包尚未验收或分发。