Skip to content

Add live WebDAV integration tests and fix nested-PUT 409 bug - #68

Merged
ultraelectronica merged 5 commits into
mainfrom
versionF
Aug 5, 2026
Merged

Add live WebDAV integration tests and fix nested-PUT 409 bug#68
ultraelectronica merged 5 commits into
mainfrom
versionF

Conversation

@ultraelectronica

Copy link
Copy Markdown
Member

Summary

Adds a live WebDAV integration test suite (env-gated) covering raw transport and two-device two-way sync, fixes a nested-PUT 409 bug by idempotently creating parent directories, and simplifies the floating capsule accent to a solid color.

Changes

WebDAV Fixes

  • Fix nested-PUT 409 bug on spec-strict WebDAV servers (rclone, mod_dav) with _ensureParent helper
  • Create missing parent directories idempotently before writing

Testing

  • Add live WebDAV roundtrip integration tests (S0.5 raw transport, S3.4 two-device sync)
  • Cover push/pull, edit propagation, tombstone propagation, and tampered-blob rejection
  • Mark S0–S3 complete; add env-gated live test suite via LOCKER_LIVE_WEBDAV_URL
  • Reformat long lines and comment unused imports in live test

UI

  • Simplify floating capsule accent to solid color (replace LinearGradient)

Replace LinearGradient with a flat accent color in the floating capsule
bottom bar decoration.
Spec-strict WebDAV servers (rclone, mod_dav) return 409 when a nested
PUT's parent collection is missing. Nextcloud auto-creates and masks
this, but other servers do not. The new `_ensureParent` helper creates
any missing parent directories idempotently before writing.
Adds `test/live_webdav_test.dart` covering S0.5 (WebDAVStore raw
transport — ping, manifest/blob roundtrip, delete, list) and S3.4
(two-device two-way `runSync` — push/pull, edit propagation, tombstone
propagation, tampered-blob rejection). Tests are env-gated behind
`LOCKER_LIVE_WEBDAV_URL`.
`test/live_webdav_test.dart` covers S0.5 + S3.4 against a real
WebDAV server (env-gated via `LOCKER_LIVE_WEBDAV_URL`). S0.5
surfaced and fixed a nested-PUT 409 bug — `WebDAVStore` now
`MKCOL`s parent dirs idempotently. Orphan blob GC is deferred;
tracked in S3 ceilings.
Break up long argument lists and expect calls across multiple lines
for readability. Comment out three unused imports (encryption_algorithm,
remote_store, pointycastle).
@ultraelectronica ultraelectronica self-assigned this Aug 5, 2026
@ultraelectronica
ultraelectronica merged commit 7cc453c into main Aug 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant