package kr.itn.itnhub.code; import kr.itn.itnhub.AbstractDbTest; import kr.itn.itnhub.mattermost.MattermostClient; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.web.servlet.MockMvc; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @AutoConfigureMockMvc class CodeControllerTest extends AbstractDbTest { @Autowired MockMvc mvc; @MockBean MattermostClient mattermost; @Test @WithMockUser(roles = "ADMIN") void 전체_코드를_그룹별로_내려준다() throws Exception { mvc.perform(get("/api/meta/codes")) .andExpect(status().isOk()) .andExpect(jsonPath("$.STAGE.length()").value(13)) .andExpect(jsonPath("$.STAGE[12].code").value("13")) .andExpect(jsonPath("$.STAGE[12].label").value("보고서 제출 완료")) .andExpect(jsonPath("$.STAGE[12].attrs.progress").value("done")) // 0~4유형 + 개방불가 + 보류 + 조사표에서 온 2개(유형 확인 필요, 제4유형) .andExpect(jsonPath("$.KOGL_TYPE.length()").value(9)) .andExpect(jsonPath("$.CONTACT_CATEGORY[0].code").value("APPLICANT")) .andExpect(jsonPath("$.CONTACT_CATEGORY[0].label").value("신청기관")); } @Test void 인증이_없으면_401이다() throws Exception { mvc.perform(get("/api/meta/codes")) .andExpect(status().isUnauthorized()); } }