diff --git a/src-tauri/src/connections/mod.rs b/src-tauri/src/connections/mod.rs index 976a4e8..479c2d1 100644 --- a/src-tauri/src/connections/mod.rs +++ b/src-tauri/src/connections/mod.rs @@ -38,10 +38,8 @@ pub struct ConnectionRecord { pub group_id: Option, pub credential_id: Option, pub color: Option, - /// JSON array string, e.g. `["linux","prod"]` - pub tags: String, + pub tags: Vec, pub notes: Option, - /// JSON object string, e.g. `{"keepalive":30}` pub options: String, pub sort_order: i64, pub last_connected: Option, @@ -254,7 +252,7 @@ impl ConnectionService { group_id: input.group_id, credential_id: input.credential_id, color: input.color, - tags: tags_json, + tags: input.tags, notes: input.notes, options: options_json, sort_order, @@ -439,6 +437,8 @@ impl ConnectionService { /// /// Column order must match the SELECT lists used throughout this module. fn map_connection_row(row: &rusqlite::Row<'_>) -> rusqlite::Result { + let tags_json: String = row.get(8)?; + let tags: Vec = serde_json::from_str(&tags_json).unwrap_or_default(); Ok(ConnectionRecord { id: row.get(0)?, name: row.get(1)?, @@ -448,7 +448,7 @@ fn map_connection_row(row: &rusqlite::Row<'_>) -> rusqlite::Result>(5)?, credential_id: row.get::<_, Option>(6)?, color: row.get::<_, Option>(7)?, - tags: row.get(8)?, + tags, notes: row.get::<_, Option>(9)?, options: row.get(10)?, sort_order: row.get(11)?, @@ -556,12 +556,10 @@ mod tests { } #[test] - fn tags_serialised_as_json_array() { + fn tags_serialised_as_vec() { let svc = make_service(); let rec = svc.create_connection(default_input("tagged")).unwrap(); - // tags should be a valid JSON array - let parsed: Vec = serde_json::from_str(&rec.tags).unwrap(); - assert_eq!(parsed, vec!["linux", "prod"]); + assert_eq!(rec.tags, vec!["linux", "prod"]); } #[test] @@ -629,8 +627,7 @@ mod tests { .unwrap(); let updated = svc.get_connection(rec.id).unwrap(); - let parsed: Vec = serde_json::from_str(&updated.tags).unwrap(); - assert_eq!(parsed, vec!["windows"]); + assert_eq!(updated.tags, vec!["windows"]); } #[test] diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index af34425..7b89906 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -87,8 +87,14 @@ pub fn run() { .plugin(tauri_plugin_shell::init()) .manage(app_state) .setup(|app| { - use tauri::Manager; - if let Some(window) = app.get_webview_window("main") { let _ = window.open_devtools(); } + #[cfg(debug_assertions)] + { + use tauri::Manager; + if let Some(window) = app.get_webview_window("main") { + window.open_devtools(); + } + } + let _ = app; Ok(()) }) .invoke_handler(tauri::generate_handler![