diff --git a/src/steps/execution.rs b/src/steps/execution.rs index fbbfa1d..81a08fe 100644 --- a/src/steps/execution.rs +++ b/src/steps/execution.rs @@ -16,6 +16,20 @@ use crate::jobs::{self, InstallMessage, UiSender}; use crate::ui::{ErrorScreen, Slideshow}; use crate::ui::theme; +/// "Kurulum devam ediyor, lütfen bekleyin…" uyarısı gösterilmeli mi? +/// +/// `copy_active` iken GÖSTERİLMEZ: çubuğun yanında yüzde ve kopyalanan +/// dosyanın adı zaten yazılı, "bekleyin" demek yerine ne olduğunu +/// söyleyen çok daha fazla bilgi var. Ek olarak bu etiket çubuğun +/// altında ikinci kez görünüyordu. +/// +/// Kopyalama bitince `copy_active` false olur ve uyarı geri gelir: +/// fstab, GRUB, temizlik gibi adımlarda ilerleme çubuğu yoktur, orada +/// kullanıcının beklemesi gerektiğini bilmesi doğrudur. +fn show_wait_notice(running: bool, copy_active: bool) -> bool { + running && !copy_active +} + #[derive(Default)] pub struct ExecutionStep { rx: Option>, @@ -337,7 +351,7 @@ impl InstallerStep for ExecutionStep { ui.add_space(8.0); if self.finished { theme::success_box(ui, &t!("install_done")); - } else if running { + } else if show_wait_notice(running, self.copy_active) { ui.horizontal(|ui| { ui.spinner(); ui.colored_label(theme::c_text_dim(), t!("install_in_progress")); @@ -390,3 +404,37 @@ impl InstallerStep for ExecutionStep { // egui::Color32::from_rgb(185, 185, 205) // } // } + +#[cfg(test)] +mod tests { + use super::show_wait_notice; + + /// Kopyalama başlayınca "bekleyin" uyarısı KAYBOLMALI. + /// + /// Kullanıcı isteği: kopyalanan dosyalar gösterilmeye başladığında + /// uyarı gereksiz — çubuk zaten yüzde ve dosya adını gösteriyor. + #[test] + fn wait_notice_hidden_while_copying() { + assert!( + !show_wait_notice(true, true), + "kopyalama sırasında uyarı gösterilmemeli" + ); + } + + /// Çubuk olmayan adımlarda (fstab, GRUB, temizlik) uyarı kalmalı — + /// orada kullanıcının beklemesi gerektiğini bilmesi doğru. + #[test] + fn wait_notice_shown_after_copy_finishes() { + assert!( + show_wait_notice(true, false), + "kopyalama bitince uyarı geri gelmeli" + ); + } + + /// Kurulum başlamadan / bitince uyarı olmaz. + #[test] + fn wait_notice_absent_when_not_running() { + assert!(!show_wait_notice(false, false), "çalışmıyorken uyarı olmamalı"); + assert!(!show_wait_notice(false, true), "çalışmıyorken uyarı olmamalı"); + } +}