Translate social, directory, groups, friends, and marketplace tests exactly #24

Closed
opened 2026-08-08 08:13:49 +00:00 by hugo · 1 comment
Owner

Objective

Translate remaining tests for groups, friends, directory/search, marketplace, offline messages, chat/IM, product info, user reporting, and manager events.

Deliverables

  • Preserve IDs, query flags, message payloads, event counts/order, HTTP/LLSD fixtures, permissions, and callback expectations.
  • Port mocks to explicit fakes where interaction behavior is the assertion.
  • Keep external/live dependencies ignored and documented.

Validation

  • All owned tests compile against public signatures.
  • Every upstream test identity is preserved.
  • No synthetic behavior is added to make setup pass.

Prerequisite

Milestone 02 must provide the complete callable public API shim. Keep all production behavior standardized as unimplemented.

Project constraints

  • Translate the original test semantics exactly; do not weaken assertions, tolerances, inputs, errors, ordering, or interaction expectations.
  • Tests must exercise the mapped Rust API and must never call LibreMetaverse/.NET as their implementation.
  • Expected C# exceptions map to specific Rust error variants; an unimplemented panic must remain a failure.
  • Do not implement production behavior during this milestone. Update parity metadata and handover status with the change.
## Objective Translate remaining tests for groups, friends, directory/search, marketplace, offline messages, chat/IM, product info, user reporting, and manager events. ## Deliverables - Preserve IDs, query flags, message payloads, event counts/order, HTTP/LLSD fixtures, permissions, and callback expectations. - Port mocks to explicit fakes where interaction behavior is the assertion. - Keep external/live dependencies ignored and documented. ## Validation - All owned tests compile against public signatures. - Every upstream test identity is preserved. - No synthetic behavior is added to make setup pass. ## Prerequisite Milestone 02 must provide the complete callable public API shim. Keep all production behavior standardized as unimplemented. ## Project constraints - Translate the original test semantics exactly; do not weaken assertions, tolerances, inputs, errors, ordering, or interaction expectations. - Tests must exercise the mapped Rust API and must never call LibreMetaverse/.NET as their implementation. - Expected C# exceptions map to specific Rust error variants; an unimplemented panic must remain a failure. - Do not implement production behavior during this milestone. Update parity metadata and handover status with the change.
hugo added this to the 03 - Full semantic test translation milestone 2026-08-08 08:13:49 +00:00
hugo added the enhancement label 2026-08-08 08:13:49 +00:00
Author
Owner

Implemented in commit 1604822. Added 64 one-to-one Rust translations (34 MarketplaceFolderClassifier, 24 MarketplaceManager, 2 OfflineMessages, 2 ProductInfoRequestMessage, and 2 remaining constructor-null cases). Tests call the public Rust API directly; marketplace/offline HTTP behavior uses explicit in-memory cross-platform fakes with request, payload, cache, callback, and event assertions. No production behavior was implemented. Isolated result on the current shim baseline: 64 tests executed, 63 fail at standardized unimplemented APIs and the pure bitflag composition case passes; 0 ignored. Full validation passed: cargo fmt --check, all three generator --check gates, API coverage, parity check, tool unit tests, workspace/all-target cargo check, downstream locked API compile, workspace test --no-run, clippy -D warnings, cargo doc, and git diff --check. Parity is now translated=650, ignored-live=19, benchmark=4, pending=616, drifted=0; every remaining pending identity is under LibreMetaverse.Tests/RLV/ and belongs to #25. The existing 19 live-grid identities remain conditionally ignored only when GRID_USER, GRID_PASSWORD, or GRID_LOGIN_URL is absent.

Implemented in commit 1604822. Added 64 one-to-one Rust translations (34 MarketplaceFolderClassifier, 24 MarketplaceManager, 2 OfflineMessages, 2 ProductInfoRequestMessage, and 2 remaining constructor-null cases). Tests call the public Rust API directly; marketplace/offline HTTP behavior uses explicit in-memory cross-platform fakes with request, payload, cache, callback, and event assertions. No production behavior was implemented. Isolated result on the current shim baseline: 64 tests executed, 63 fail at standardized unimplemented APIs and the pure bitflag composition case passes; 0 ignored. Full validation passed: cargo fmt --check, all three generator --check gates, API coverage, parity check, tool unit tests, workspace/all-target cargo check, downstream locked API compile, workspace test --no-run, clippy -D warnings, cargo doc, and git diff --check. Parity is now translated=650, ignored-live=19, benchmark=4, pending=616, drifted=0; every remaining pending identity is under LibreMetaverse.Tests/RLV/ and belongs to #25. The existing 19 live-grid identities remain conditionally ignored only when GRID_USER, GRID_PASSWORD, or GRID_LOGIN_URL is absent.
hugo closed this issue 2026-08-08 19:47:35 +00:00
Sign in to join this conversation.