fix(app-iced, presenter): M114 r4 —— 登录面板 Close 不再是死按钮 + 面板态删掉原文字段(把「画原文」变成编译错)
复审 r2 P2-1:`Account::Close` 只在 `phase.busy()` 时派 `CancelDeviceLogin`,而 `Page::build` 只要非 Idle 就强制回 Microsoft ⇒ Failed/Succeeded 下 Close 点了没反应。 - 判据改成「两条轨任一非 Idle 就取消」;host 侧 `CancelDeviceLogin` 本来就把两条轨收成 Idle - mock 补 `AppCommand::CancelDeviceLogin` 分支(按真 host 契约发 Idle),否则 mock 下不可验 - 新增 headless 回归闸:失败/成功/第三方轨三种态 → Close → `panel == None` (变异实证:判据退回 `busy()` ⇒ 该用例红,打印 left: Microsoft / right: None) 复审 r2 P2-2:`DevicePanel`/`AuthlibPanel` 删掉 `message`/`detail` 字段。 视图没有材料可画,「把后端原文画上屏」从测试问题变成**类型错误**; `tests_text.rs` 的 docstring 改成真实边界(只覆盖模型 + i18n 查表,视图靠类型 + 出图)。 顺带(塔看图标出):alert 的 `Code: …` 与标题同排,省一整行高度, 避免 1180×760 把 All accounts 第三行挤到折线下;新增 `closed` 取证场景出「关掉之后」的对照图。
This commit is contained in:
1 parent
bc71834bc3
commit
f3e20b670e
9 files changed
+188
-81
No files matched your search
@@ -284,6 +284,16 @@ impl Backend for MockBackend {
|
||||
)));
|
||||
}
|
||||
AppCommand::RefreshAll => self.seed_accounts(),
|
||||
// 与真 host 同一契约:取消登录把**两条轨**都收回 Idle(M114 r3 / 复审 r2 P2-1 的
|
||||
// 断言与截图都依赖这条;mock 的 `_ => {}` 兜底会让 Close 看起来「没反应」)。
|
||||
AppCommand::CancelDeviceLogin => {
|
||||
self.emit(AppEvent::Core(CoreEvent::DeviceLoginChanged(
|
||||
crate::dto::DeviceLoginView::new(),
|
||||
)));
|
||||
self.emit(AppEvent::Core(CoreEvent::AuthlibLoginChanged(
|
||||
crate::dto::AuthlibLoginView::new(),
|
||||
)));
|
||||
}
|
||||
AppCommand::RefreshLogSessions | AppCommand::StopAgent => {}
|
||||
// 其余指令(安装向导/账户/Java/设置/通知)由真实 host 承接:mock 不模拟
|
||||
_ => {}
|
||||
|
||||
@@ -73,7 +73,8 @@ pub(super) fn device_login(scenario: &str) -> Option<DeviceLoginView> {
|
||||
"",
|
||||
)),
|
||||
// 带**原因码**的失败:原文(中文诊断)留在 detail 里只进日志,页面画 i18n + Code
|
||||
"failed" => Some(DeviceLoginView::failed_as(
|
||||
// `closed` 用同一份种子,再由 `force_account_state` 按一次「关闭」,出「关掉之后」的图。
|
||||
"failed" | "closed" => Some(DeviceLoginView::failed_as(
|
||||
LoginFailure::NotWhitelisted,
|
||||
"微软拒绝了这次登录:AADSTS7000218(HTTP 403)—— 应用白名单还没批准,或网络被拦截",
|
||||
)),
|
||||
|
||||
Reference in new issue
Block a user