aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests/installer/installation_manager_test.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-07-20 03:48:52 +0900
committernsfisis <nsfisis@gmail.com>2026-07-20 03:48:52 +0900
commit10f77452e1f335e0f9eac3997d393dedf801c2c5 (patch)
treefe3394af58793f8153583cb362517ba7272700e8 /crates/shirabe/tests/installer/installation_manager_test.rs
parent7225d0b9f9f0428d3ba5eb04f0327ca60ac6a389 (diff)
downloadphp-shirabe-10f77452e1f335e0f9eac3997d393dedf801c2c5.tar.gz
php-shirabe-10f77452e1f335e0f9eac3997d393dedf801c2c5.tar.zst
php-shirabe-10f77452e1f335e0f9eac3997d393dedf801c2c5.zip
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 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/tests/installer/installation_manager_test.rs')
-rw-r--r--crates/shirabe/tests/installer/installation_manager_test.rs9
1 files 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!()
}