Cache TOTP discovery and report progress (#74)

This commit is contained in:
2026-08-11 23:15:23 +02:00
parent 6edcb5fc86
commit 9759162eff
12 changed files with 1577 additions and 198 deletions

View File

@@ -320,7 +320,7 @@ fn entry_collisions_require_confirmation_unless_forced() -> TestResult {
}
#[test]
fn mutation_rejects_ambiguous_sources_and_same_object_targets() -> TestResult {
fn mutation_prefers_an_entry_over_its_same_named_directory() -> TestResult {
let fixture = FixtureSet::load()?;
let store = fixture.materialize_store("basic")?;
fs::create_dir(store.path().join("email/personal"))?;
@@ -329,22 +329,26 @@ fn mutation_rejects_ambiguous_sources_and_same_object_targets() -> TestResult {
let mut provider = Secrets::all(&fixture);
let mutator = TreeMutator::new(&repository, &keys);
assert!(matches!(
mutator.copy(
&CopyRequest {
source: "email/personal".into(),
destination: "elsewhere".into(),
force: false,
},
OverwriteDecision::Allow,
None,
mutator.copy(
&CopyRequest {
source: "email/personal".into(),
destination: "elsewhere".into(),
force: false,
},
OverwriteDecision::Allow,
None,
&mut provider,
&mut Committer::default(),
)?;
assert!(store.path().join("email/personal").is_dir());
assert_eq!(
keys.decrypt(
&repository.read_entry(&EntryPath::parse("elsewhere")?)?,
&mut provider,
&mut Committer::default()
),
Err(MutationError::Repository(
ironstorage::repository::RepositoryError::AmbiguousPath { .. }
))
));
)?
.expose(),
fixture.read("expected/basic/email/personal.txt")?
);
assert!(matches!(
mutator.copy(
&CopyRequest {