refs #726: add Select AI SHOWPROMPT diagnostic tool
This commit is contained in:
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user