From 10f77452e1f335e0f9eac3997d393dedf801c2c5 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 20 Jul 2026 03:48:52 +0900 Subject: test(installation-manager): detail test_execute ignore reason Spell out why the existing __new_mock seam cannot serve: it replaces execute() wholesale (skipping the download step, ref InstallationManagerMock), while the PHP test runs the real execute() and spies only on the three per-operation methods it dispatches to. A per-method spy on the real path would be a production design change. Co-Authored-By: Claude Fable 5 --- crates/shirabe/tests/installer/installation_manager_test.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/crates/shirabe/tests/installer/installation_manager_test.rs b/crates/shirabe/tests/installer/installation_manager_test.rs index 26b8d7fa..f5012ef7 100644 --- a/crates/shirabe/tests/installer/installation_manager_test.rs +++ b/crates/shirabe/tests/installer/installation_manager_test.rs @@ -296,8 +296,13 @@ fn test_add_remove_installer() { #[test] fn test_execute() { // TODO(phase-d): a partial mock of InstallationManager (onlyMethods install/update/uninstall) - // with expects(once)->with(...) is not reproducible without method-overriding mocks; execute() - // also takes the batched download path. + // with expects(once)->with(...) is not reproducible without method-overriding mocks: the PHP + // test runs the *real* execute() (batched download path included, via NoopInstaller) while + // spying on the three per-operation methods it dispatches to. The existing + // `InstallationManager::__new_mock` seam cannot serve because it replaces execute() wholesale + // (recording operations and skipping the download step, ref InstallationManagerMock), so the + // real dispatch logic under test would never run. A per-method spy seam on the real execute() + // path would be a design change to the production struct, so the test stays ignored. todo!() } -- cgit v1.3.1