|
1 | 1 | use crate::gui::Panel; |
2 | 2 | use crate::hotkey::Key; |
3 | | -use crate::hotkey::{Hotkey, parse_hotkey}; |
| 3 | +use crate::hotkey::{parse_hotkey, Hotkey}; |
4 | 4 | use crate::settings::defaults::*; |
5 | 5 | use serde::{Deserialize, Serialize}; |
6 | 6 | use std::collections::HashSet; |
@@ -781,6 +781,41 @@ mod tests { |
781 | 781 | assert_eq!(restored.multi_manager, settings.multi_manager); |
782 | 782 | } |
783 | 783 |
|
| 784 | + #[test] |
| 785 | + fn multi_manager_old_json_defaults_auto_reconnect_and_ignores_obsolete_reconnect_fields() { |
| 786 | + let parsed: Settings = serde_json::from_str( |
| 787 | + r#"{ |
| 788 | + "multi_manager": { |
| 789 | + "enabled": true, |
| 790 | + "periodic_reconnect_enabled": true, |
| 791 | + "reconnect_interval_ms": 1000, |
| 792 | + "auto_reconnect_period_ms": 2500 |
| 793 | + } |
| 794 | + }"#, |
| 795 | + ) |
| 796 | + .expect("old settings should deserialize"); |
| 797 | + |
| 798 | + assert!(parsed.multi_manager.auto_reconnect_on_load); |
| 799 | + assert_eq!( |
| 800 | + parsed.multi_manager.workspaces_path, |
| 801 | + MultiManagerSettings::default().workspaces_path |
| 802 | + ); |
| 803 | + } |
| 804 | + |
| 805 | + #[test] |
| 806 | + fn multi_manager_serialization_omits_obsolete_periodic_reconnect_fields() { |
| 807 | + let json = serde_json::to_value(Settings::default()).expect("serialize settings"); |
| 808 | + let multi_manager = json |
| 809 | + .get("multi_manager") |
| 810 | + .and_then(serde_json::Value::as_object) |
| 811 | + .expect("multi manager object"); |
| 812 | + |
| 813 | + assert!(multi_manager.contains_key("auto_reconnect_on_load")); |
| 814 | + assert!(!multi_manager.contains_key("periodic_reconnect_enabled")); |
| 815 | + assert!(!multi_manager.contains_key("reconnect_interval_ms")); |
| 816 | + assert!(!multi_manager.contains_key("auto_reconnect_period_ms")); |
| 817 | + } |
| 818 | + |
784 | 819 | #[test] |
785 | 820 | fn query_results_layout_defaults_are_backward_compatible() { |
786 | 821 | let parsed: Settings = serde_json::from_str("{}").expect("settings should deserialize"); |
|
0 commit comments