refs #726: add Select AI SHOWPROMPT diagnostic tool

This commit is contained in:
devmrko
2026-07-23 20:27:14 +09:00
parent 53342e7bc3
commit 23bc4424e3
6 changed files with 213 additions and 31 deletions

View File

@@ -26,16 +26,19 @@ class McpSseServiceTest {
"oracle.select_ai.test_data_text2sql",
"테스트 데이터 Text2SQL",
"테스트 데이터용 읽기 전용 SQL을 생성하고 실행합니다.",
"테스트 데이터의 조회 내용을 입력합니다."
"테스트 데이터의 조회 내용을 입력합니다.",
"oracle.select_ai.test_data_showprompt",
"테스트 데이터 SHOWPROMPT",
"테스트 데이터의 Select AI prompt를 조회합니다."
)
);
@Test
void listsOnlyVpdSelectAiToolWithPromptInput() {
void listsQueryAndShowpromptToolsWithPromptInput() {
ObjectNode response = service.handle("default", request(1, "tools/list"));
var tools = response.path("result").path("tools");
assertThat(tools).hasSize(1);
assertThat(tools).hasSize(2);
var selectAi = tools.get(0);
assertThat(selectAi.path("name").asText()).isEqualTo("oracle.select_ai.test_data_text2sql");
assertThat(selectAi.path("description").asText()).contains("SGMP_POC_OCI_GPT54MINI");
@@ -45,6 +48,36 @@ class McpSseServiceTest {
assertThat(selectAi.path("inputSchema").path("properties").has("bearerToken")).isFalse();
assertThat(selectAi.path("inputSchema").path("properties").has("limit")).isFalse();
assertThat(selectAi.path("inputSchema").path("properties").has("conversationId")).isFalse();
var showprompt = tools.get(1);
assertThat(showprompt.path("name").asText())
.isEqualTo("oracle.select_ai.test_data_showprompt");
assertThat(showprompt.path("description").asText())
.contains("SGMP_POC_OCI_GPT54MINI")
.contains("Select AI prompt");
assertThat(showprompt.path("inputSchema").path("required"))
.extracting(node -> node.asText())
.contains("prompt");
}
@Test
void callsShowpromptWithoutExecutingGeneratedSql() {
ObjectNode request = request(4, "tools/call");
ObjectNode params = (ObjectNode) request.putObject("params");
params.put("name", "oracle.select_ai.test_data_showprompt");
params.putObject("arguments").put("prompt", "버블리즈 유저 마스터 조회해줘.");
ObjectNode response = service.handle("default", request, "user-bearer");
CapturingSelectAiService agentService = (CapturingSelectAiService) selectAiService;
assertThat(agentService.bearerToken).isEqualTo("user-bearer");
assertThat(agentService.prompt).isEqualTo("버블리즈 유저 마스터 조회해줘.");
assertThat(agentService.showpromptCalled).isTrue();
assertThat(response.path("result").path("isError").asBoolean()).isFalse();
assertThat(response.path("result").path("content").get(0).path("text").asText())
.contains("oracle.select_ai.test_data_showprompt")
.contains("SHOWPROMPT")
.contains("assembled Select AI prompt");
}
@Test
@@ -99,6 +132,7 @@ class McpSseServiceTest {
private String bearerToken;
private String prompt;
private boolean showpromptCalled;
private CapturingSelectAiService() {
super(null, null, null, new ObjectMapper());
@@ -117,5 +151,16 @@ class McpSseServiceTest {
response.putArray("items").addObject().put("RESULT", 1);
return response;
}
@Override
public JsonNode generatePrompt(String bearerToken, String prompt) {
this.bearerToken = bearerToken;
this.prompt = prompt;
this.showpromptCalled = true;
return new ObjectMapper().createObjectNode()
.put("profile", "SGMP_POC_OCI_GPT54MINI")
.put("status", "SHOWPROMPT")
.put("selectAiPrompt", "assembled Select AI prompt");
}
}
}