evaluatePendingUpdate static method
Future<bool>
evaluatePendingUpdate({
- required Future<
bool> oldFileExists(), - required Future<
WindowsServiceStatus> queryStatus(),
待生效 helper 更新的判定逻辑:<helper>.old 存在(App 更新时重命名降级
的产物,运行中服务仍挂在旧文件上)且服务当前 running。
组合逻辑拆为静态纯函数(oldFileExists / queryStatus 为注入的异步输入),
公共入口 hasPendingHelperUpdate 组装真实依赖——ProfileStorage 目录与
status CLI 子进程在单测环境均不可用。
Implementation
@visibleForTesting
static Future<bool> evaluatePendingUpdate({
required Future<bool> Function() oldFileExists,
required Future<WindowsServiceStatus> Function() queryStatus,
}) async {
// 短路:绝大多数场景无待生效更新,不启动 status CLI 子进程
if (!await oldFileExists()) return false;
return await queryStatus() == WindowsServiceStatus.running;
}