diff --git a/.planning/phases/12.1-fix-nextcloud-root-listing-and-sync-visibility/12.1-UAT.md b/.planning/phases/12.1-fix-nextcloud-root-listing-and-sync-visibility/12.1-UAT.md new file mode 100644 index 0000000..a373172 --- /dev/null +++ b/.planning/phases/12.1-fix-nextcloud-root-listing-and-sync-visibility/12.1-UAT.md @@ -0,0 +1,67 @@ +--- +status: complete +phase: 12.1-fix-nextcloud-root-listing-and-sync-visibility +source: 12.1-01-SUMMARY.md, 12.1-02-SUMMARY.md, 12.1-03-SUMMARY.md, 12.1-04-SUMMARY.md +started: 2026-06-22T00:00:00Z +updated: 2026-06-22T00:00:00Z +--- + +## Current Test + +## Current Test + +[testing complete] + +## Tests + +### 1. Nextcloud Root Items Appear in Cloud Browser +expected: Open the DocuVault app, navigate to a configured Nextcloud connection in the cloud browser. The root folder loads and shows its actual contents (folders and/or files) in the file grid — not empty, not an error. +result: pass + +### 2. Cloud Items Show Correct Type Icons +expected: In the cloud browser, folders appear with a folder icon and files appear with a file icon. No item has a wrong or missing type indicator. (This applies to any cloud provider — Nextcloud, WebDAV, Google Drive, OneDrive.) +result: pass + +### 3. Folder Navigation via Click +expected: Click a folder in the cloud browser. The view navigates into that folder and displays its contents. This should work even for providers like OneDrive where folder IDs are opaque strings (not paths). The URL/route updates to reflect the new folder. +result: pass + +### 4. Breadcrumb Shows Navigation Lineage +expected: After clicking into a subfolder (or several levels deep), a breadcrumb bar shows the path taken (e.g., "Root > Documents > 2026"). Clicking any breadcrumb segment navigates back to that level correctly — contents reload for that folder. +result: pass + +### 5. Warning State on Incomplete Listing (Freshness) +expected: If the cloud provider returns a partial/incomplete listing (network issue, timeout, provider-side limit), the UI should show a warning/caution indicator — NOT a "fresh" or "synced" indicator. Previously cached items remain visible during the warning state rather than disappearing. +result: skipped +reason: Requires injecting a mid-call failure into the backend to trigger complete=False. Covered by 9 automated tests (test_incomplete_listing_never_marks_folder_fresh, test_browse_complete_false_never_sets_fresh, etc.) — manual trigger not worth patching production code. + +### 6. Freshness Timestamp Comes from Server +expected: The "last refreshed" or "last synced" timestamp shown in the cloud browser UI matches the server-reported time — it does NOT jump to the current browser clock time on every page load. If the server says "last synced 10 minutes ago," the UI reflects that. +result: issue +reported: "All 'modified' rows are empty and just with a '-' filled. The native cloud storage browser does show a modified time." +severity: major + +### 7. Test Suite Passes (Backend + Frontend) +expected: Running `cd backend && pytest -v` passes all tests (excluding the pre-existing `test_extract_docx` failure). Running `cd frontend && npm test` or `npm run test:unit` passes all 376 frontend tests with 0 failures. +result: pass + +## Summary + +total: 7 +passed: 5 +issues: 1 +pending: 0 +skipped: 1 +blocked: 0 + +## Gaps + +- truth: "Cloud browser displays per-item modification timestamps supplied by the provider" + status: failed + reason: "User reported: All 'modified' rows are empty and just with a '-' filled. The native cloud storage browser does show a modified time." + severity: major + test: 6 + root_cause: "" + artifacts: [] + missing: [] + debug_session: ""