summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--installer-downloader/tests/controller.rs8
-rw-r--r--installer-downloader/tests/mock.rs10
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())
}
}