Commit Graph

4 Commits

Author SHA1 Message Date
Abner
75da15edff 🐛 fix: 修复 PR 评审发现的 11 项问题
- data.data 空值保护:data?.data?.eSims 防止 TypeError
- directFetchMode 移至成功路径设置,失败时重置为 false
- SMS 卡片切换时隐藏 directFetchSection,避免双内联区同时可见
- modeBadge 直取模式下隐藏"设备更换"徽标
- tl() 文案迁移至 LITERAL_TRANSLATIONS,修复英文环境回退中文
- "拉取中"状态类型从 success 改为 info
- SSN radio 查询限定到 picker 容器内
- jest.config 补全 .spec.js 排除规则
- innerHTML 改用 DOM API 构建(pullBtn + renderSsnPicker)
- 测试 fail() 替换为 expect().rejects 惯用写法
2026-05-28 20:12:19 +08:00
Abner
60c3bd1cce feat: 新增「已支付直取 eSIM」功能,支持已购用户直接拉取 eSIM 生成二维码
在第 4 步新增第三张卡片「已支付直取 eSIM」,跳过 reserve/swap 流程,
直接调用 eSims(DOWNLOADABLE) 查询账户已有 eSIM 并生成 QR 码。

- BFF 白名单追加 eSims 查询的 App 头判定
- 新增 getESims GraphQL 查询与 fetchExistingESims/directFetchFlow 方法
- 支持多 eSIM 选择器(radio 列表)与空列表/错误状态处理
- 状态面板新增 directFetchMode 模式显示(运行时,不持久化)
- 补充 zh/en 双语 i18n 文案与 .status.info 样式
- 新增 9 个单元测试,全量测试 118 用例通过

Closes #62
2026-05-28 19:20:48 +08:00
Abner
9ed51287c0 test: 新增多个核心模块的单元测试并优化 Jest 配置
- 在 `jest.config.js` 中启用 V8 覆盖率提供器(兼容 Node.js 22+),提升覆盖率检测性能与准确性
- 调整覆盖率收集范围为 `src/js/modules/**/*.js`,排除测试文件,使报告更聚焦于实际业务逻辑
- 降低全局覆盖率阈值至当前可达成水平(statements/branches 30%-70%),制定逐步提升计划
- 新增 6 个模块的完整单元测试:`APIService`、`AppConfig`、`HTMLSanitizer`、`Logger`、`SecureStorage` 和 `utils`,总计约 840 行测试代码
- 修复 `HTMLSanitizer.sanitizeURL()` 中对 `data:text/html` 协议的正则检测逻辑,增强 XSS 防护能力
2026-05-05 10:35:14 +08:00
Abner
ce5390b5b6 feat(giffgaff): 添加 Giffgaff eSIM 功能模块
- 新增 Giffgaff eSIM 主应用控制器和相关模块
- 实现 OAuth 登录、Cookie 验证、邮件验证码发送和验证等功能
- 添加会员信息获取、eSIM 预订和下载信息获取等核心功能
- 开发响应式 UI 和状态显示逻辑
- 集成 Jest 测试框架并配置相关测试命令
2025-08-07 22:21:45 +08:00