🐛 fix(ci): 修复 Windows 更新 MSI 测试夹具

- 为多实例确认和单实例直启用例显式固定当前 MSI 安装模式
- 在测试清理阶段恢复安装模式解析器,避免全局注入污染后续用例
- 避免临时安装目录被误判为 Portable 后提前触发包兼容性失败
This commit is contained in:
Syngnat
2026-07-24 12:00:40 +08:00
parent 562afd1406
commit e43fc6e1a1

View File

@@ -243,18 +243,21 @@ func TestInstallUpdateAndRestartRequiresCloseConfirmationOnWindows(t *testing.T)
}
originalResolveTarget := updateResolveInstallTarget
originalResolveInstallMode := updateResolveInstallMode
originalFindOtherInstances := updateFindOtherWindowsInstances
originalConfirmCloseInstances := updateConfirmCloseWindowsInstances
originalAcquireMaintenance := updateAcquireWindowsMaintenance
originalLaunch := updateLaunchInstallScript
t.Cleanup(func() {
updateResolveInstallTarget = originalResolveTarget
updateResolveInstallMode = originalResolveInstallMode
updateFindOtherWindowsInstances = originalFindOtherInstances
updateConfirmCloseWindowsInstances = originalConfirmCloseInstances
updateAcquireWindowsMaintenance = originalAcquireMaintenance
updateLaunchInstallScript = originalLaunch
})
updateResolveInstallTarget = func() string { return filepath.Join(dir, "GoNavi.exe") }
updateResolveInstallMode = func() updateInstallMode { return updateInstallModeMSI }
maintenanceAcquired := false
updateAcquireWindowsMaintenance = func(string) (windowsUpdateMaintenanceLease, error) {
maintenanceAcquired = true
@@ -314,6 +317,7 @@ func TestInstallUpdateAndRestartSkipsCloseConfirmationForSingleWindowsInstance(t
}
originalResolveTarget := updateResolveInstallTarget
originalResolveInstallMode := updateResolveInstallMode
originalFindOtherInstances := updateFindOtherWindowsInstances
originalConfirmCloseInstances := updateConfirmCloseWindowsInstances
originalAcquireMaintenance := updateAcquireWindowsMaintenance
@@ -322,6 +326,7 @@ func TestInstallUpdateAndRestartSkipsCloseConfirmationForSingleWindowsInstance(t
originalExitProcess := updateExitProcess
t.Cleanup(func() {
updateResolveInstallTarget = originalResolveTarget
updateResolveInstallMode = originalResolveInstallMode
updateFindOtherWindowsInstances = originalFindOtherInstances
updateConfirmCloseWindowsInstances = originalConfirmCloseInstances
updateAcquireWindowsMaintenance = originalAcquireMaintenance
@@ -330,6 +335,7 @@ func TestInstallUpdateAndRestartSkipsCloseConfirmationForSingleWindowsInstance(t
updateExitProcess = originalExitProcess
})
updateResolveInstallTarget = func() string { return filepath.Join(dir, "GoNavi.exe") }
updateResolveInstallMode = func() updateInstallMode { return updateInstallModeMSI }
maintenanceAcquired := false
findCalls := 0
updateFindOtherWindowsInstances = func([]string, int) ([]windowsUpdateProcess, error) {