test(knowledge): 补 MuseKnowledgeBindingServiceTest 漏的 @Mock MarketHandoffTokenApi(修预存 NPE 红)
回归验证(本 session 改动确认)顺带发现的预存历史红(非本 session 引入、真实 CI 隐患):should_createMarketBindingPrecheckWithRedactedHandoffHashAndRfc3339Expiry 因测试类漏声明 MarketHandoffTokenApi 的 @Mock→@InjectMocks 注入 null→service consumeMarketHandoff 调 marketHandoffTokenApi.verify(:275)抛 NPE。该红源于 Market handoff 特性(e5d2b52/3a7a72f、6-19)补 verify/consume 真验真核销时,测试 mock 装配未跟上。 补 @Mock + 该用例 stub verify(valid=true)让 market_kb 兑现路径通过,聚焦原 precheck handoff hash 脱敏/RFC3339 过期断言不变。验证:MuseKnowledgeBindingServiceTest 11/11 全绿 BUILD SUCCESS(此前 :71 NPE 红、其他 10 用例不破坏)。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
85ad97798f
commit
7ee9cc866e
@ -12,6 +12,8 @@ import cn.iocoder.muse.module.knowledge.dal.dataobject.muse.MuseKnowledgeSourceB
|
||||
import cn.iocoder.muse.module.knowledge.dal.mysql.muse.MuseKnowledgeBindPrecheckMapper;
|
||||
import cn.iocoder.muse.module.knowledge.dal.mysql.muse.MuseKnowledgeBindingMapper;
|
||||
import cn.iocoder.muse.module.knowledge.dal.mysql.muse.MuseKnowledgeSourceBindingProjectionMapper;
|
||||
import cn.iocoder.muse.module.market.api.handoff.MarketHandoffTokenApi;
|
||||
import cn.iocoder.muse.module.market.api.handoff.dto.HandoffVerifyRespDTO;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
@ -61,6 +63,8 @@ class MuseKnowledgeBindingServiceTest extends BaseMockitoUnitTest {
|
||||
private MuseKnowledgeCommandService commandService;
|
||||
@Mock
|
||||
private MuseKnowledgeWorkOwnerFacade workOwnerFacade;
|
||||
@Mock
|
||||
private MarketHandoffTokenApi marketHandoffTokenApi;
|
||||
|
||||
@AfterEach
|
||||
void clearTenantContext() {
|
||||
@ -76,6 +80,10 @@ class MuseKnowledgeBindingServiceTest extends BaseMockitoUnitTest {
|
||||
AppKnowledgeBindingVO.PrecheckReqVO reqVO = precheckReq("market_kb", "available",
|
||||
List.of("search", "generate", "export"));
|
||||
reqVO.setHandoffToken("market-secret-token");
|
||||
// market_kb 来源会回 Market 服务端核验 handoff token(consumeMarketHandoff→verify);桩返回 valid=true 让兑现通过,
|
||||
// 本用例聚焦 precheck 的 handoff hash 脱敏与 RFC3339 过期断言。
|
||||
when(marketHandoffTokenApi.verify(any())).thenReturn(
|
||||
new HandoffVerifyRespDTO(true, "verified", "knowledge", "bind", null, null, null, null, null));
|
||||
|
||||
AppKnowledgeBindingVO.PrecheckRespVO respVO =
|
||||
bindingService.createKnowledgeBindingPrecheck(2001L, "1", 9001L, reqVO);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user