test(api): reject unsupported include before search

Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
This commit is contained in:
XiaoSeS 2026-08-25 12:15:33 +08:00
parent dcc68587c8
commit fc448c512a
3 changed files with 8 additions and 1 deletions

View file

@ -58,6 +58,7 @@ public class SkillSearchController extends BaseApiController {
@RequestAttribute(value = "userId", required = false) String userId,
@RequestAttribute(value = "userNsRoles", required = false) Map<Long, NamespaceRole> userNsRoles) {
boolean includeLabels = IncludeOptions.includesLabels(include);
SkillSearchAppService.SearchResponse response = skillSearchAppService.search(
q,
namespace,
@ -69,7 +70,7 @@ public class SkillSearchController extends BaseApiController {
userNsRoles
);
return ok("response.success.read", IncludeOptions.includesLabels(include) ? withLabels(response) : response);
return ok("response.success.read", includeLabels ? withLabels(response) : response);
}
private SkillSearchAppService.SearchResponse withLabels(SkillSearchAppService.SearchResponse response) {

View file

@ -50,6 +50,7 @@ import static org.mockito.ArgumentMatchers.anyMap;
import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.ArgumentMatchers.same;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.when;
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.authentication;
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf;
@ -190,6 +191,8 @@ class ClawHubCompatControllerTest {
void listSkills_shouldRejectUnsupportedIncludeOptions() throws Exception {
mockMvc.perform(get("/api/v1/skills").param("include", "labels,stats"))
.andExpect(status().isBadRequest());
verifyNoInteractions(skillSearchAppService);
}
@Test

View file

@ -18,6 +18,7 @@ import java.util.Map;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.when;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
@ -195,6 +196,8 @@ class SkillSearchControllerTest {
mockMvc.perform(get("/api/web/skills").param("include", "labels,stats"))
.andExpect(status().isBadRequest())
.andExpect(jsonPath("$.code").value(400));
verifyNoInteractions(skillSearchAppService);
}
private static SkillSummaryResponse summary(Long id) {