From bc27e5eee78e4d9c46a9d679fe0c23415a4da8f9 Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Sun, 16 Aug 2026 22:50:24 -0700 Subject: [PATCH] Update CLI import pipeline --- .../yaak-cli/src/commands/import_export.rs | 16 ++++++------- .../yaak-cli/tests/import_export_commands.rs | 23 ++++++++++++------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/crates-cli/yaak-cli/src/commands/import_export.rs b/crates-cli/yaak-cli/src/commands/import_export.rs index 9c763b45..77f406d1 100644 --- a/crates-cli/yaak-cli/src/commands/import_export.rs +++ b/crates-cli/yaak-cli/src/commands/import_export.rs @@ -5,8 +5,7 @@ use std::fs; use std::io::ErrorKind; use yaak::export::{self, ExportDataParams}; use yaak::import; -use yaak_core::WorkspaceContext; -use yaak_models::util::BatchUpsertResult; +use yaak_models::util::{BatchUpsertResult, ImportDestination}; use yaak_plugins::events::{ImportResources, PluginContext}; type CommandResult = std::result::Result; @@ -51,6 +50,7 @@ async fn import(ctx: &CliContext, args: ImportArgs) -> CommandResult CommandResult ImportDestination::CurrentWorkspace { workspace_id, folder_id: None }, + None => ImportDestination::NewWorkspace, }; - let imported = import::import_resources(ctx.query_manager(), workspace_context, resources) + let plan = import::plan_import_resources(ctx.query_manager(), importer, destination, resources) + .map_err(|e| format!("Failed to plan import: {e}"))?; + let imported = import::commit_import_plan(ctx.query_manager(), plan) .map_err(|e| format!("Failed to import data: {e}"))?; Ok(imported) } diff --git a/crates-cli/yaak-cli/tests/import_export_commands.rs b/crates-cli/yaak-cli/tests/import_export_commands.rs index 2921beb4..0b332cb0 100644 --- a/crates-cli/yaak-cli/tests/import_export_commands.rs +++ b/crates-cli/yaak-cli/tests/import_export_commands.rs @@ -81,14 +81,21 @@ fn import_reads_yaak_workspace_file() { let query_manager = query_manager(data_dir); let db = query_manager.connect(); - assert_eq!( - db.get_workspace("wrk_import").expect("workspace imported").name, - "Imported Workspace" - ); - assert_eq!( - db.get_http_request("req_import").expect("request imported").url, - "https://example.com" - ); + let workspaces = db.list_workspaces().expect("list imported workspaces"); + let workspace = workspaces + .iter() + .find(|workspace| workspace.name == "Imported Workspace") + .expect("workspace imported"); + assert_ne!(workspace.id, "wrk_import"); + + let requests = db.list_http_requests(&workspace.id).expect("list imported requests"); + let request = requests + .iter() + .find(|request| request.name == "Imported Request") + .expect("request imported"); + assert_ne!(request.id, "req_import"); + assert_eq!(request.workspace_id, workspace.id); + assert_eq!(request.url, "https://example.com"); } fn write_postman_environment_fixture(path: &std::path::Path) {