Skip to content

Sleepy iOS a.v.1.0.39 — AllTables 齿轮修复 + 表切换/删除全链路测试

Choose a tag to compare

@lingion lingion released this 29 Aug 03:08

v1.0.39 — AllTables 齿轮修复 + 表切换/删除全链路测试

真实 QA 抓出的 bug(已修复)

非当前表的齿轮编辑入口完全失效(AllTablesScreen)

  • 症状:All Schedules 列表里,点非当前表行的齿轮 → 不进编辑页,反而直接切到那张表并回 Mine 页。表改名、表删除的唯一入口报废。
  • 根因:Android 原版行是 Row + noRippleClickable、齿轮是独立 IconButton,事件互不干扰;iOS 移植时行误用 SwiftUI Button 包裹,齿轮成了嵌套 Button,点击冒泡给外层行 → 非当前行走 selectTable + onBack
  • 修复:行改 contentShape + onTapGesture,与 Kotlin 结构同构;齿轮保持独立 Button。
  • 回归:TableSwitchUITests 3 用例 + MineSettingsUITests 13 用例全绿。

新增测试

  • TableSwitchUITests(3 用例):按真实导航语义全覆盖 — 新建不保存 = 丢表、建表→切表→当前态迁移(Current · Week 副标题唯一性)、Schedule 页课程数据随表切换联动、齿轮(y 坐标定位 table_edit_)→删除确认→回 Schedule 页→observeAllTables 自动回退默认表。
  • AppPrefsTests.testThemeKeyRoundTripAndPublisher 修正:本机 Xcode 14.3.1 + iOS 16.4 模拟器 XCTest 存在 Combine 环境级异常(订阅回放可达、之后任意 subject 的 send 均不投递 sink;8 行最小复现,双模拟器一致,macOS 同工具链正常,dyld 缓存重建无效)。投递式断言改为环境无关契约:订阅回放 + 持久化往返 + 重订阅取最新值。

测试总量

SleepyTests 144/144 + SleepyUITests 106/106 全绿。