diff options
Diffstat (limited to 'src-tauri/src')
| -rw-r--r-- | src-tauri/src/lib.rs | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 2b359eb..aaa9cd2 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -23,6 +23,17 @@ fn app_data_dir(app: &AppHandle) -> std::path::PathBuf { app.path().app_data_dir().expect("Failed to resolve app data dir") } +fn fallback_bundled_audio_root() -> std::path::PathBuf { + std::path::PathBuf::from("src-tauri") +} + +fn bundled_audio_dir(app: &AppHandle) -> std::path::PathBuf { + app.path() + .resource_dir() + .unwrap_or_else(|_| fallback_bundled_audio_root()) + .join("audio") +} + fn persist_timer_snapshot( timer: &TimerState, data: &State<'_, AppDataWrapper>, @@ -423,9 +434,7 @@ pub fn run() { }); // Initialise audio engine (graceful if no device) - let bundled_audio_dir = app.handle().path().resource_dir() - .unwrap_or_else(|_| std::path::PathBuf::from(".")) - .join("audio"); + let bundled_audio_dir = bundled_audio_dir(app.handle()); let audio_state = audio::init_audio(app_audio_dir, bundled_audio_dir); let audio_arc = Arc::clone(&audio_state.0); app.manage(audio_state); @@ -462,3 +471,13 @@ pub fn run() { .run(tauri::generate_context!()) .expect("error while running tauri application"); } + +#[cfg(test)] +mod tests { + use super::fallback_bundled_audio_root; + + #[test] + fn dev_audio_fallback_points_at_src_tauri() { + assert_eq!(fallback_bundled_audio_root(), std::path::PathBuf::from("src-tauri")); + } +} |
