Add additive KDBX importer

This commit is contained in:
2026-08-11 09:04:48 +02:00
parent f84f7247d2
commit bf75465642
23 changed files with 1959 additions and 82 deletions

View File

@@ -8,6 +8,7 @@ use ironstorage::command::{
OtpInputSource, OtpRequest, OtpUriPresentation, Presentation, completion_script, help_text,
otp_version_text, parse_from, version_text,
};
use ironstorage::kdbx::{KdbxImportMode, KdbxImportRequest};
type TestResult = Result<(), Box<dyn Error>>;
@@ -360,3 +361,31 @@ fn configuration_option_and_meta_commands_have_stable_contracts() -> TestResult
);
Ok(())
}
#[test]
fn kdbx_import_contract_supports_update_and_quick_add_modes() -> TestResult {
assert_eq!(
request(&["import-kdbx", "vault.kdbx"])?,
CommandRequest::ImportKdbx(KdbxImportRequest::new(
"vault.kdbx",
None,
KdbxImportMode::AddAndUpdate,
))
);
assert_eq!(
request(&[
"import-kdbx",
"vault.kdbx",
"--key-file",
"vault.key",
"--quick-add",
])?,
CommandRequest::ImportKdbx(KdbxImportRequest::new(
"vault.kdbx",
Some("vault.key".into()),
KdbxImportMode::QuickAdd,
))
);
assert!(help_text(Some(HelpTopic::ImportKdbx)).contains("--quick-add"));
Ok(())
}