chore(release): 7.0.7 공개 릴리즈 사전점검 정비 — 누출 단서 주석 정리 + 태그 관례 정합
- 공개 릴리즈 누출 검사 error 3건 해소: 소스 주석의 내부 규정 파일명·내부 스크립트 경로 참조를 공개 문서 참조/도구 비귀속 표현으로 교체 - warn 4건 해소: 테스트·주석의 내부 역할 호칭을 "운영 실측 제보" 로 정리 - 릴리즈 스크립트(코어·확장)의 버전 태그를 공개 저장소 기존 태그 관례(v 접두사 없음)에 정합 — 접두사 혼재로 태그 시리즈가 갈라지는 것을 차단
This commit is contained in:
@@ -150,7 +150,8 @@ class LanguagePackRepository implements LanguagePackRepositoryInterface
|
||||
public function allForUpdateCheck(): Collection
|
||||
{
|
||||
// audit:allow query-unbounded-get reason: 언어팩은 운영자가 설치한 팩 수만큼만 존재하는
|
||||
// 설정성 테이블이다 (사용량과 무관) — CLAUDE.md pagination 예외 조항
|
||||
// 설정성 테이블이다 (사용량과 무관) — 대용량 목록 페이지네이션 규정의 설정성
|
||||
// 테이블 예외 조항 (docs/backend/pagination.md)
|
||||
return LanguagePack::query()->orderBy('identifier')->get();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -241,7 +241,7 @@ class EcommerceInquiryHookListenerTest extends BoardTestCase
|
||||
]);
|
||||
|
||||
// null(무응답/실패)이 아닌 중복 마커 — 호출 서비스가 "이미 등록된 답변" 사유로
|
||||
// 변환한다. null 로 되돌리면 사유가 generic 실패로 위장된다 (PO 실측 제보 회귀).
|
||||
// 변환한다. null 로 되돌리면 사유가 generic 실패로 위장된다 (운영 실측 제보 회귀).
|
||||
$this->assertSame(
|
||||
['duplicate' => true],
|
||||
$result,
|
||||
|
||||
+3
-1
@@ -1,5 +1,7 @@
|
||||
/**
|
||||
* 환경설정 탭별 개별 저장 패턴 검증 테스트
|
||||
* e2e:allow 테스트 설명 문구만 변경(공개 릴리즈 사전점검 — 내부 호칭 정리).
|
||||
* 런타임 코드/레이아웃 무변경이라 브라우저 동작 차이가 없다.
|
||||
*
|
||||
* @description
|
||||
* - 저장 버튼의 apiCall body가 활성 탭 데이터만 전송하는지 검증
|
||||
@@ -93,7 +95,7 @@ describe('환경설정 탭별 개별 저장 패턴 검증', () => {
|
||||
expect(body).toContain("'basic_info'");
|
||||
});
|
||||
|
||||
it('저장 실패 토스트가 서버 오류 메시지를 노출해야 한다 (회귀 — PO 실측 제보)', () => {
|
||||
it('저장 실패 토스트가 서버 오류 메시지를 노출해야 한다 (회귀 — 운영 실측 제보)', () => {
|
||||
// 고정 문구만 쓰면 검증 실패 사유(예: 필드별 422 메시지)가 사용자에게
|
||||
// 도달하지 못하고 "설정 저장에 실패했습니다" 로 뭉개진다.
|
||||
const apiCallAction = findActionByHandler(saveButton.actions, 'apiCall');
|
||||
|
||||
@@ -740,7 +740,7 @@ class ProductInquiryService
|
||||
|
||||
// 2차 방어(리스너, 게시판 실데이터)가 중복을 감지하면 중복 마커를 돌려준다.
|
||||
// 경합 경로(피벗 is_answered 가 아직 false)에서도 사유를 보존해 422 로 안내
|
||||
// — null 과 합치면 "답변 등록에 실패했습니다" 로 위장된다 (PO 실측 제보).
|
||||
// — null 과 합치면 "답변 등록에 실패했습니다" 로 위장된다 (운영 실측 제보).
|
||||
if (is_array($postResult) && ! empty($postResult['duplicate'])) {
|
||||
throw new ProductInquiryOperationException('sirsoft-ecommerce::messages.inquiries.reply_already_exists');
|
||||
}
|
||||
|
||||
+1
-1
@@ -325,7 +325,7 @@ class UserProductInquiryControllerTest extends ModuleTestCase
|
||||
}
|
||||
|
||||
/**
|
||||
* 경합 경로의 중복도 사유가 보존된다 (회귀 — PO 실측 제보).
|
||||
* 경합 경로의 중복도 사유가 보존된다 (회귀 — 운영 실측 제보).
|
||||
*
|
||||
* 동시 등록 경합에서는 피벗 is_answered 가 아직 false 라 1차 방어를 통과하고,
|
||||
* 게시판 리스너의 2차 방어(실데이터 기준)가 중복을 감지한다. 종전에는 리스너가
|
||||
|
||||
@@ -29,7 +29,7 @@ use Tests\TestCase;
|
||||
*
|
||||
* 축 요약(마커 아님 — 평문): actor 는 sub_admin·super_admin, operation 은 modify·status·
|
||||
* unlock·grant_permission·assign_role·remove_role·update_role·toggle_role, outcome 은 blocked·allowed 다.
|
||||
* 이 요약을 클래스 레벨 `@scenario` 로 적으면 파서(.claude/scripts/lib/test-scenario.cjs)가
|
||||
* 이 요약을 클래스 레벨 `@scenario` 로 적으면 시나리오 마커 파서가
|
||||
* `=` 없는 토큰을 버리고 첫 값만 취해 **실재하지 않는 조합 1건**으로 집계한다 — 커버리지를
|
||||
* 부풀리는 방향이라 요약은 반드시 평문으로 둔다. 실제 커버는 메서드 레벨 마커가 담당한다.
|
||||
*/
|
||||
|
||||
@@ -29,7 +29,7 @@ use Tests\TestCase;
|
||||
* 교차하지 않는 별개 관심사라 축으로 올리면 어떤 조합도 관측 지점을 갖지 못합니다 —
|
||||
* 그래서 축이 아니라 sub_flow 이고, 커버는 아래 메서드들의 효과 마커가 담당합니다.
|
||||
*
|
||||
* 주의: 산문에 마커 문법을 그대로 인용하면 파서(.claude/scripts/lib/test-scenario.cjs)가
|
||||
* 주의: 산문에 마커 문법을 그대로 인용하면 시나리오 마커 파서가
|
||||
* 그 문장을 마커로 읽어 실재하지 않는 조합을 만듭니다. 마커 이름은 평문으로만 언급합니다.
|
||||
*
|
||||
* 효과 요약(마커 아님 — 평문): every_extension_type_declaration_is_collected,
|
||||
|
||||
Reference in New Issue
Block a user