mirror of https://github.com/usbharu/Hideout.git
test: postのテストも追加
This commit is contained in:
parent
09bbdd6854
commit
e7313645be
|
@ -1,6 +1,9 @@
|
|||
package mastodon.filter
|
||||
|
||||
import dev.usbharu.hideout.SpringApplication
|
||||
import dev.usbharu.hideout.application.config.ActivityPubConfig
|
||||
import dev.usbharu.hideout.domain.mastodon.model.generated.FilterPostRequest
|
||||
import dev.usbharu.hideout.domain.mastodon.model.generated.FilterPostRequestKeyword
|
||||
import org.flywaydb.core.Flyway
|
||||
import org.junit.jupiter.api.AfterAll
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
|
@ -8,12 +11,14 @@ 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.context.SpringBootTest
|
||||
import org.springframework.http.MediaType
|
||||
import org.springframework.security.core.authority.SimpleGrantedAuthority
|
||||
import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors
|
||||
import org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers
|
||||
import org.springframework.test.context.jdbc.Sql
|
||||
import org.springframework.test.web.servlet.MockMvc
|
||||
import org.springframework.test.web.servlet.get
|
||||
import org.springframework.test.web.servlet.post
|
||||
import org.springframework.test.web.servlet.setup.DefaultMockMvcBuilder
|
||||
import org.springframework.test.web.servlet.setup.MockMvcBuilders
|
||||
import org.springframework.transaction.annotation.Transactional
|
||||
|
@ -36,6 +41,106 @@ class FilterTest {
|
|||
.build()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `apiV2FiltersPost write権限で追加できる`() {
|
||||
mockMvc
|
||||
.post("/api/v2/filters") {
|
||||
contentType = MediaType.APPLICATION_JSON
|
||||
content = ActivityPubConfig().objectMapper().writeValueAsString(
|
||||
FilterPostRequest(
|
||||
title = "mute test",
|
||||
context = listOf(FilterPostRequest.Context.home, FilterPostRequest.Context.public),
|
||||
filterAction = FilterPostRequest.FilterAction.warn,
|
||||
expiresIn = null,
|
||||
keywordsAttributes = listOf(
|
||||
FilterPostRequestKeyword(
|
||||
keyword = "hoge",
|
||||
wholeWord = false,
|
||||
regex = true
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
with(
|
||||
SecurityMockMvcRequestPostProcessors.jwt()
|
||||
.jwt { it.claim("uid", "1") }.authorities(SimpleGrantedAuthority("SCOPE_write"))
|
||||
)
|
||||
}
|
||||
.asyncDispatch()
|
||||
.andExpect { status { isOk() } }
|
||||
.andExpect {
|
||||
content {
|
||||
jsonPath("$.keywords[0].keyword") {
|
||||
value("hoge")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `apiV2FiltersPost write_filters権限で追加できる`() {
|
||||
mockMvc
|
||||
.post("/api/v2/filters") {
|
||||
contentType = MediaType.APPLICATION_JSON
|
||||
content = ActivityPubConfig().objectMapper().writeValueAsString(
|
||||
FilterPostRequest(
|
||||
title = "mute test",
|
||||
context = listOf(FilterPostRequest.Context.home, FilterPostRequest.Context.public),
|
||||
filterAction = FilterPostRequest.FilterAction.warn,
|
||||
expiresIn = null,
|
||||
keywordsAttributes = listOf(
|
||||
FilterPostRequestKeyword(
|
||||
keyword = "fuga",
|
||||
wholeWord = true,
|
||||
regex = false
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
with(
|
||||
SecurityMockMvcRequestPostProcessors.jwt()
|
||||
.jwt { it.claim("uid", "1") }.authorities(SimpleGrantedAuthority("SCOPE_write:filters"))
|
||||
)
|
||||
}
|
||||
.asyncDispatch()
|
||||
.andExpect { status { isOk() } }
|
||||
.andExpect {
|
||||
content {
|
||||
jsonPath("$.keywords[0].keyword") {
|
||||
value("fuga")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `apiV2FiltersPost read権限で401`() {
|
||||
mockMvc
|
||||
.post("/api/v2/filters") {
|
||||
contentType = MediaType.APPLICATION_JSON
|
||||
content = ActivityPubConfig().objectMapper().writeValueAsString(
|
||||
FilterPostRequest(
|
||||
title = "mute test",
|
||||
context = listOf(FilterPostRequest.Context.home, FilterPostRequest.Context.public),
|
||||
filterAction = FilterPostRequest.FilterAction.warn,
|
||||
expiresIn = null,
|
||||
keywordsAttributes = listOf(
|
||||
FilterPostRequestKeyword(
|
||||
keyword = "fuga",
|
||||
wholeWord = true,
|
||||
regex = false
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
with(
|
||||
SecurityMockMvcRequestPostProcessors.jwt()
|
||||
.jwt { it.claim("uid", "1") }.authorities(SimpleGrantedAuthority("SCOPE_read"))
|
||||
)
|
||||
}
|
||||
.andExpect { status { isForbidden() } }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `apiV2FiltersGet read権限で取得できる`() {
|
||||
mockMvc
|
||||
|
@ -49,6 +154,31 @@ class FilterTest {
|
|||
.andExpect { status { isOk() } }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `apiV2FiltersGet read_filters権限で取得できる`() {
|
||||
mockMvc
|
||||
.get("/api/v2/filters") {
|
||||
with(
|
||||
SecurityMockMvcRequestPostProcessors.jwt()
|
||||
.jwt { it.claim("uid", "1") }.authorities(SimpleGrantedAuthority("SCOPE_read:filters"))
|
||||
)
|
||||
}
|
||||
.asyncDispatch()
|
||||
.andExpect { status { isOk() } }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `apiV2FiltersGet write権限で401`() {
|
||||
mockMvc
|
||||
.get("/api/v2/filters") {
|
||||
with(
|
||||
SecurityMockMvcRequestPostProcessors.jwt()
|
||||
.jwt { it.claim("uid", "1") }.authorities(SimpleGrantedAuthority("SCOPE_write"))
|
||||
)
|
||||
}
|
||||
.andExpect { status { isForbidden() } }
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
@AfterAll
|
||||
|
|
Loading…
Reference in New Issue