Background
The openzeppelin_allowance::spend_vault module's fund-egress and root-reading paths depend on the Sui funds accumulator. The Move unit-test VM currently cannot construct an AccumulatorRoot, so those paths can't be exercised in the unit suite. This is disclosed in the test suite's testability note; the rest of the module (ledger / cap / event / expiry / exact-value-delivery) is covered.
What unblocks this
create_for_testing for AccumulatorRoot has landed on Sui's sui-v1.74.0-release branch. It ships with 1.74 (not a 1.73 patch). Once we bump SUI_VERSION to 1.74, we can add unit tests for the paths that only need a constructible root:
Remaining gap (separate dependency)
withdraw_all's funded drain reads settled_funds_value, which is only written by the system settlement step that test_scenario does not run, so a unit test can only reach the empty case. That branch stays non-unit-testable until a test-only setter for the settled balance exists. Tracking an upstream request for it:
Follow-up
Introduced in #402.
Background
The
openzeppelin_allowance::spend_vaultmodule's fund-egress and root-reading paths depend on the Sui funds accumulator. The Move unit-test VM currently cannot construct anAccumulatorRoot, so those paths can't be exercised in the unit suite. This is disclosed in the test suite's testability note; the rest of the module (ledger / cap / event / expiry / exact-value-delivery) is covered.What unblocks this
create_for_testingforAccumulatorRoothas landed on Sui'ssui-v1.74.0-releasebranch. It ships with 1.74 (not a 1.73 patch). Once we bumpSUI_VERSIONto 1.74, we can add unit tests for the paths that only need a constructible root:balance_valuespendable_nowwithdraw_all: empty-pool (amount == 0) and owner-gate branchesRemaining gap (separate dependency)
withdraw_all's funded drain readssettled_funds_value, which is only written by the system settlement step thattest_scenariodoes not run, so a unit test can only reach the empty case. That branch stays non-unit-testable until a test-only setter for the settled balance exists. Tracking an upstream request for it:withdraw_alldrainFollow-up
Introduced in #402.