Skip to content

Stabilize Shared Files dynamic folder lifecycle E2E

Summary

Stabilize the UI-driven Shared Files dynamic-folder lifecycle scenario so it is usable as a release regression gate.

The current scenario exists, but the live run exposed drive-tree selection fragility. This item turns it into a dependable test that proves UI sharing operations and REST-visible shared-file state agree.

Acceptance Criteria

  • [x] drive-tree node discovery works reliably on the isolated profile
  • [x] UI add/remove shared directory operations are observed through /api/v1/shared-directories
  • [x] adding and deleting files under a shared root is reflected through /api/v1/shared-files
  • [x] recursive and non-recursive roots are both covered
  • [x] failure artifacts include UI observations and REST snapshots

Progress Evidence

  • 2026-05-10: added a focused aggregate-suite selector for Shared Files UI scenarios and ran: python -m emule_workspace test live-e2e --config Release --platform x64 --suite shared-files-ui --shared-files-ui-scenario dynamic-folder-lifecycle. The aggregate report repos\emulebb-build-tests\reports\live-e2e-suite\20260510-055052-eMule-main-release\result.json passed with only dynamic-folder-lifecycle selected.
  • 2026-05-10: the focused Shared Files report repos\emulebb-build-tests\reports\shared-files-ui-e2e\20260510-055052-eMule-main-release\result.json passed the dynamic lifecycle. UI and REST shared-file names matched for initial_empty, after_share, after_add_file, after_delete_file, and after_unshare; the observed names were alpha_dynamic.txt, beta_dynamic.bin, and gamma_late.txt where expected.
  • 2026-05-10: ran the recursive robustness scenario through the focused selector: python -m emule_workspace test live-e2e --config Release --platform x64 --suite shared-files-ui --shared-files-ui-scenario generated-robustness-recursive. The aggregate report repos\emulebb-build-tests\reports\live-e2e-suite\20260510-055317-eMule-main-release\result.json passed, and the Shared Files report confirmed 26 expected visible files, 13 ignored files, 12 shared-directory tree entries, and expected ascending/descending size-sort prefixes.
  • 2026-05-10: ran the non-recursive three-file fixture through the focused selector: python -m emule_workspace test live-e2e --config Release --platform x64 --suite shared-files-ui --shared-files-ui-scenario fixture-three-files. The aggregate report repos\emulebb-build-tests\reports\live-e2e-suite\20260510-055351-eMule-main-release\result.json passed, and the Shared Files report confirmed the three expected rows, name-sort order, size-sort order, reload preservation, and detail-pane selection updates.
  • 2026-05-10: hardened Shared Files UI failure artifacts in repos\emulebb-build-tests commit d1df89d. REST-backed dynamic and monitored scenarios now add failure_observation with the current Shared Files UI row count, UI names, REST shared-file names, and REST shared-directory model where available. Targeted unit verification: python -m emule_workspace test python --path tests/python/test_shared_files_ui_e2e.py --quiet passed with 12 tests.
  • 2026-05-10: reran the monitored-folder scenario after artifact hardening: python -m emule_workspace test live-e2e --config Release --platform x64 --suite shared-files-ui --shared-files-ui-scenario monitored-folder-events. The aggregate report repos\emulebb-build-tests\reports\live-e2e-suite\20260510-055636-eMule-main-release\result.json passed, with REST and UI names matching through monitor share, file create, directory create, file delete, and monitor unshare.

Relationship To Other Items

  • backs CI-011
  • exercises the API surface added by REST-001