Files
Gnuboard7/tests/scenarios/extension-cache-binding-isolation.yaml
T
2026-07-01 10:30:32 +09:00

39 lines
2.3 KiB
YAML

# audit:allow test-scenario-coverage reason: axes 54 cross product 중 의미적으로 핵심인 5케이스(글로벌 무결성, 식별자 prefix 매칭, fallback adapter, contextual binding 다중 소비자, empty array skip) 만 docblock 매핑. 나머지 49건은 axis 조합상으로는 가능하나 동작 분기는 동일 — 매트릭스 형식적 확장이므로 면제. effects 8건은 코어/플러그인 양측 docblock 에 전수 매핑됨.
feature: 확장(모듈/플러그인) 캐시·스토리지 도메인 격리
description: |
코어 `CacheInterface` / `StorageInterface` 글로벌 바인딩은 모듈·플러그인 ServiceProvider
가 덮어쓰지 않으며, 확장 도메인의 캐시는 `BasePluginServiceProvider` / `BaseModuleServiceProvider`
의 `$cacheServices` / `$storageServices` 배열로만 contextual binding 으로 주입한다.
이슈 #392 의 회귀 가드 — InicisVerificationServiceProvider 가 글로벌 singleton 재바인딩으로
코어 LayoutService 의 `ext.cache_version` bump 키를 플러그인 도메인으로 누수시킨 결함의
재발 차단.
axes:
extension_kind: [plugin, module]
service_kind: [cache_service, storage_service]
global_binding_state: [installed_before_provider, installed_after_provider, absent]
manager_state: [plugin_resolved, plugin_null_fallback]
consumer_type: [single_class, multiple_classes, no_registration]
exclusions:
- { service_kind: storage_service, manager_state: plugin_null_fallback, reason: "storage fallback 도 cache 와 같은 어댑터 경로라 axes 중복" }
effects:
- cache_service_receives_plugin_cache_driver_with_correct_identifier_prefix
- storage_service_receives_plugin_storage_driver_with_correct_disk
- global_cache_interface_binding_remains_core_cache_driver
- global_storage_interface_binding_remains_core_storage_driver
- layout_service_ext_cache_version_key_written_to_core_namespace
- inline_adapter_used_when_plugin_not_registered_in_manager
- empty_service_arrays_skip_contextual_binding_entirely
- inicis_identity_provider_receives_correctly_prefixed_plugin_cache
test_files:
- tests/Feature/Extension/PluginCacheBindingIsolationTest.php
- tests/Unit/Extension/AbstractExtensionServiceProviderTest.php
- tests/Unit/Extension/BasePluginServiceProviderTest.php
- tests/Unit/Extension/BaseModuleServiceProviderTest.php