Fix ARCHIVE delete (create _Deleted base) + full engine test matrix
Build & Release APK / build (push) Successful in 12m46s
Build & Release APK / build (push) Successful in 12m46s
Full-matrix on-device test (FullSyncEngineTest) drives the real SyncEngine (in-memory Room + real local folder + live Nextcloud) across all directions, all delete behaviors, updates, recursive/non-recursive, filters, conflicts, and content integrity — 14 instrumented tests, all green on a Galaxy S23. It caught a real bug: ARCHIVE delete moved files to _Deleted/ but never created the _Deleted folder, so the MOVE failed for top-level files and they were left in place. Now creates the _Deleted base before the move.
This commit is contained in:
@@ -186,6 +186,10 @@ class SyncEngine @Inject constructor(
|
||||
if (pair.deleteBehavior == DeleteBehavior.ARCHIVE) {
|
||||
val archivePath = "${pair.remotePath}/_Deleted/$rel"
|
||||
runCatching {
|
||||
// Create the _Deleted base itself first — ensureRemoteDirs only
|
||||
// makes sub-parents of rel, so for a top-level file the MOVE
|
||||
// would otherwise fail with a missing-parent error.
|
||||
provider.createDirectory("${pair.remotePath}/_Deleted")
|
||||
ensureRemoteDirs(provider, "${pair.remotePath}/_Deleted", rel)
|
||||
provider.moveFile("${pair.remotePath}/$rel", archivePath).getOrThrow()
|
||||
}.onFailure { e -> Timber.e(e, "SyncEngine: ARCHIVE failed for $rel") }
|
||||
|
||||
Reference in New Issue
Block a user