diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-07-20 03:48:52 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-07-20 03:48:52 +0900 |
| commit | 10f77452e1f335e0f9eac3997d393dedf801c2c5 (patch) | |
| tree | fe3394af58793f8153583cb362517ba7272700e8 /crates/shirabe/tests/installer | |
| parent | 7225d0b9f9f0428d3ba5eb04f0327ca60ac6a389 (diff) | |
| download | php-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')
| -rw-r--r-- | crates/shirabe/tests/installer/installation_manager_test.rs | 9 |
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!() } |
