diff options
| -rw-r--r-- | installer-downloader/tests/controller.rs | 8 | ||||
| -rw-r--r-- | installer-downloader/tests/mock.rs | 10 |
2 files changed, 13 insertions, 5 deletions
diff --git a/installer-downloader/tests/controller.rs b/installer-downloader/tests/controller.rs index dcc571ea72..0d1b0deeb7 100644 --- a/installer-downloader/tests/controller.rs +++ b/installer-downloader/tests/controller.rs @@ -22,7 +22,7 @@ async fn test_fetch_version() { let mut delegate = FakeAppDelegate::default(); AppController::initialize::<_, FakeAppDownloaderHappyPath, _, FakeDirectoryProvider<true>>( &mut delegate, - FakeVersionInfoProvider {}, + FakeVersionInfoProvider::default(), FAKE_ENVIRONMENT, ); @@ -46,7 +46,7 @@ async fn test_download() { let mut delegate = FakeAppDelegate::default(); AppController::initialize::<_, FakeAppDownloaderHappyPath, _, FakeDirectoryProvider<true>>( &mut delegate, - FakeVersionInfoProvider {}, + FakeVersionInfoProvider::default(), FAKE_ENVIRONMENT, ); @@ -92,7 +92,7 @@ async fn test_failed_verification() { let mut delegate = FakeAppDelegate::default(); AppController::initialize::<_, FakeAppDownloaderVerifyFail, _, FakeDirectoryProvider<true>>( &mut delegate, - FakeVersionInfoProvider {}, + FakeVersionInfoProvider::default(), FAKE_ENVIRONMENT, ); @@ -130,7 +130,7 @@ async fn test_failed_directory_creation() { let mut delegate = FakeAppDelegate::default(); AppController::initialize::<_, FakeAppDownloaderHappyPath, _, FakeDirectoryProvider<false>>( &mut delegate, - FakeVersionInfoProvider {}, + FakeVersionInfoProvider::default(), FAKE_ENVIRONMENT, ); diff --git a/installer-downloader/tests/mock.rs b/installer-downloader/tests/mock.rs index 5e4a08d44b..51a20f347d 100644 --- a/installer-downloader/tests/mock.rs +++ b/installer-downloader/tests/mock.rs @@ -12,10 +12,15 @@ use mullvad_update::fetch::ProgressUpdater; use mullvad_update::version::{Version, VersionInfo, VersionParameters}; use std::io; use std::path::{Path, PathBuf}; +use std::sync::atomic::AtomicBool; use std::sync::{Arc, LazyLock, Mutex}; use std::vec::Vec; -pub struct FakeVersionInfoProvider {} +/// Fake version info provider +#[derive(Default)] +pub struct FakeVersionInfoProvider { + pub fail_fetching: Arc<AtomicBool>, +} pub static FAKE_VERSION: LazyLock<VersionInfo> = LazyLock::new(|| VersionInfo { stable: Version { @@ -35,6 +40,9 @@ pub const FAKE_ENVIRONMENT: Environment = Environment { #[async_trait::async_trait] impl VersionInfoProvider for FakeVersionInfoProvider { async fn get_version_info(&self, _params: VersionParameters) -> anyhow::Result<VersionInfo> { + if self.fail_fetching.load(std::sync::atomic::Ordering::SeqCst) { + anyhow::bail!("Failed to fetch version info"); + } Ok(FAKE_VERSION.clone()) } } |
