test(12.1): owner-confirmed expected root manifest
- Create backend/tests/fixtures/cloud/nextcloud_expected_root.json with owner_confirmed: true and corrected 10-item name/kind manifest - Add test_nextcloud_expected_root_manifest: exact set and kind equality against fixture (T-12.1-19 — count-only acceptance blocked) - Update 12.1-VALIDATION.md: manifest status OWNER CONFIRMED, add exact-acceptance row to Nyquist matrix
This commit is contained in:
+16
-12
@@ -1,6 +1,6 @@
|
||||
# Phase 12.1: Fix Nextcloud Root Listing and Sync Visibility — Validation Matrix
|
||||
|
||||
**Status:** Plan 04 Task 1 complete. Awaiting Task 2 (owner fixture reconciliation).
|
||||
**Status:** Plan 04 Task 2 complete. Fixture owner-confirmed; exact-acceptance test enabled.
|
||||
**Updated:** 2026-06-22
|
||||
|
||||
---
|
||||
@@ -12,6 +12,7 @@
|
||||
| CONN-04: Connection-ID IDOR | Security-negative | All plans | `test_foreign_user_cannot_browse_cloud_item`, `test_admin_cannot_browse_cloud_connection` |
|
||||
| CLOUD-01: Provider-neutral browse | Contract suite | P01 | `test_cloud_provider_contract.py` — 48 parametrized tests across all 4 providers |
|
||||
| CLOUD-01: Root listing correct | Live smoke | P04 | `test_nextcloud_root_diagnostic` — sanitized counts and kind breakdown |
|
||||
| CLOUD-01: Root exact acceptance | Live exact | P04 T2 | `test_nextcloud_expected_root_manifest` — owner-confirmed 10-item set and kind equality |
|
||||
| CLOUD-01: Connection-ID API browse | End-to-end live | P04 | `test_nextcloud_connection_id_browse_as_designated_user` |
|
||||
| CACHE-01: Freshness truthful | TDD GREEN | P02 | `test_incomplete_listing_never_marks_folder_fresh`, `test_browse_complete_false_never_sets_fresh` |
|
||||
| SYNC-01: Frontend normalized shape | TDD GREEN | P03 | `CloudFolderView.test.js` — kind, provider_item_id, verbatim freshness |
|
||||
@@ -49,6 +50,7 @@ If any variable is absent, all live tests skip with a message naming only the va
|
||||
| `test_nextcloud_adapter_read_only_root_metadata` | Verifies the production adapter lists root via canonical four-argument signature, returns CloudListing, items carry trusted caller identity, no byte/mutation method is accessible |
|
||||
| `test_nextcloud_root_diagnostic` | Sanitized count/kind/match diagnostic — nonblocking while manifest is unconfirmed |
|
||||
| `test_nextcloud_connection_id_browse_as_designated_user` | End-to-end browse via `GET /api/cloud/connections/{id}/items` as `testuser@docuvault.example` in isolated test DB; asserts foreign-user and admin denial |
|
||||
| `test_nextcloud_expected_root_manifest` | Exact set and kind equality against `backend/tests/fixtures/cloud/nextcloud_expected_root.json` (owner_confirmed: true); enabled after Task 2 reconciliation |
|
||||
|
||||
### Read-only / no-mutation contract
|
||||
|
||||
@@ -85,21 +87,23 @@ on the adapter object. No MinIO, quota, or object-storage change is made.
|
||||
|
||||
---
|
||||
|
||||
## Manifest Status: UNCONFIRMED — Task 2 Pending
|
||||
## Manifest Status: OWNER CONFIRMED — Task 2 Complete
|
||||
|
||||
The exact-name acceptance gate is blocked. The three supplier-expected names that were not
|
||||
exactly matched in the prior probe are:
|
||||
The project owner reconciled the three fixture discrepancies (2026-06-22). The correct actual
|
||||
Nextcloud names for the three previously unmatched slots are:
|
||||
|
||||
- `Manual Nextcloud.png`
|
||||
- `Nextcloud Intro.mp4`
|
||||
- `Template credits.md`
|
||||
- Corrected name 1: kind=file (prior candidate name was wrong — owner confirmed)
|
||||
- Corrected name 2: kind=file (prior candidate name was wrong — owner confirmed)
|
||||
- Corrected name 3: kind=file (prior candidate name was wrong — owner confirmed)
|
||||
|
||||
The project owner must confirm (via Task 2 checkpoint) which source is authoritative before
|
||||
the fixture `backend/tests/fixtures/cloud/nextcloud_expected_root.json` is created and
|
||||
`test_nextcloud_expected_root_manifest` is enabled.
|
||||
The full manifest of 10 items is now stored in
|
||||
`backend/tests/fixtures/cloud/nextcloud_expected_root.json` with `owner_confirmed: true`.
|
||||
The fixture contains only names, kinds, and provenance notes — no credentials, URLs, or
|
||||
unexpected provider names. Unexpected provider names continue to be withheld from all
|
||||
committed artifacts and logs (T-12.1-20).
|
||||
|
||||
Unexpected provider names returned for the 3 unmatched slots are withheld here and must not
|
||||
appear in any committed artifact, log, or response.
|
||||
`test_nextcloud_expected_root_manifest` is now enabled and requires exact set equality and
|
||||
exact kind equality against the confirmed fixture.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user