summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSebastian Holmin <sebastian.holmin@mullvad.net>2025-03-05 15:25:13 +0100
committerDavid Lönnhager <david.l@mullvad.net>2025-03-05 23:33:03 +0100
commitfce594ecca0037b4dff79b6366ee9d4804f40625 (patch)
treedeea0543f57fc6670a93e56ee86eb851c20f69a6
parentb0792ce4400412ffbc212df0f14c16707174dde4 (diff)
downloadmullvadvpn-fce594ecca0037b4dff79b6366ee9d4804f40625.tar.xz
mullvadvpn-fce594ecca0037b4dff79b6366ee9d4804f40625.zip
Add `fail_fetching` to `FakeVersionInfoProvider`
-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())
}
}