Files
Gnuboard7/tests/scenarios/template-public-config-cache-invalidation.yaml
HeuJung e819db9d42 fix(core): 공개 템플릿 config 캐시 무효화 누락과 확장 캐시 삭제 경로 동종 결함 정비
공개 config.json 의 고정 캐시 키(template.config.{identifier})가 어떤 갱신
경로에서도 forget 되지 않아 template:update/cache-clear/비활성화/삭제 후에도
최대 1시간(TTL) 이전 manifest 로 응답되던 결함(공개 )을 수정한다.

- TemplateManager::clearTemplateCache 공개화 — config/components_manifest(두
 변종)/현재 버전 routes·language 키 능동 forget, updateTemplate cleanup 호출
- forgetLayoutCacheKeys 가 편집기용 .with_source_meta 변종까지 삭제
- ext.cache_version 쓰기를 incrementExtensionCacheVersion 단일 지점으로 통일
- module/plugin:cache-clear 의 유령 키 forget 을 실재 캐시(레이아웃 서빙/해석
 캐시, 상태 키, 미들웨어 인덱스, 버전 bump) 무효화로 교체
- 공개 routes/language/layout API 의 ?v 생략 폴백을 0 → 현재 버전으로 교정
2026-08-17 13:22:48 +09:00

34 lines
1.9 KiB
YAML

# audit:allow test-scenario-coverage reason: axes 30 cross product(pairwise) 중 동작 분기가 실재하는 조합만 docblock 매핑. cache_state=cold 는 라이프사이클 트리거와 직교(캐시가 없으면 forget 은 무조건 no-op 멱등)라 트리거 조합 확장이 형식적이고, template_type 은 무효화 경로가 타입 무관 단일 코드(clearTemplateCache)라 admin 대표 + 구조 테스트의 user 로 충분. effects 7건은 전수 매핑됨.
feature: template_public_config_cache_invalidation
description: |
공개 템플릿 설정(config.json) 서빙 캐시 `template.config.{identifier}` 는 버전
접미사 없는 고정 키라 캐시 버전 bump 로 무효화되지 않는다. 템플릿 라이프사이클
(cache-clear 커맨드 단일/전체, update, deactivate, uninstall) 전 경로가
`TemplateManager::clearTemplateCache()` 단일 지점을 경유해 이 키(+ components_manifest
두 변종, 현재 버전 routes/language 키, `.with_source_meta` 편집기 변종)를 능동
삭제함을 고정한다 (#588, 공개 #119).
coverage_strategy: pairwise
axes:
cache_state: [cold, warm_current, warm_stale]
lifecycle_trigger: [cache_clear_command_single, cache_clear_command_all, template_update, deactivate, uninstall]
template_type: [admin, user]
effects:
- cache_clear_command_forgets_template_config_key
- template_update_invalidates_public_config_cache
- deactivate_uninstall_invalidate_public_config_cache
- serve_config_caches_manifest_and_embeds_cache_version
- serve_config_returns_installed_manifest_after_invalidation
- clear_template_cache_forgets_components_manifest_variants
- with_source_meta_layout_cache_variants_forgotten
test_files:
- tests/Feature/Template/TemplateCacheManagementTest.php
- tests/Feature/Template/PublicTemplateControllerTest.php
- tests/Feature/Console/Commands/Template/TemplateArtisanCommandsTest.php
- tests/Unit/Extension/TemplateUpdateConfigCacheInvalidationTest.php