fix(backend): allow blank prompt when creating tasks
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
package com.condado.newsletter.controller
|
||||
|
||||
import com.condado.newsletter.model.VirtualEntity
|
||||
import com.condado.newsletter.repository.EntityTaskRepository
|
||||
import com.condado.newsletter.repository.GeneratedMessageHistoryRepository
|
||||
import com.condado.newsletter.repository.VirtualEntityRepository
|
||||
import com.condado.newsletter.scheduler.EntityScheduler
|
||||
import com.condado.newsletter.service.JwtService
|
||||
import com.ninjasquad.springmockk.MockkBean
|
||||
import jakarta.servlet.http.Cookie
|
||||
import org.junit.jupiter.api.AfterEach
|
||||
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.test.web.servlet.MockMvc
|
||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post
|
||||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath
|
||||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status
|
||||
|
||||
@SpringBootTest
|
||||
@AutoConfigureMockMvc
|
||||
class EntityTaskControllerTest {
|
||||
|
||||
@Autowired lateinit var mockMvc: MockMvc
|
||||
@Autowired lateinit var jwtService: JwtService
|
||||
@Autowired lateinit var virtualEntityRepository: VirtualEntityRepository
|
||||
@Autowired lateinit var entityTaskRepository: EntityTaskRepository
|
||||
@Autowired lateinit var generatedMessageHistoryRepository: GeneratedMessageHistoryRepository
|
||||
|
||||
@MockkBean lateinit var entityScheduler: EntityScheduler
|
||||
|
||||
private fun authCookie() = Cookie("jwt", jwtService.generateToken())
|
||||
|
||||
@AfterEach
|
||||
fun cleanUp() {
|
||||
generatedMessageHistoryRepository.deleteAll()
|
||||
entityTaskRepository.deleteAll()
|
||||
virtualEntityRepository.deleteAll()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun should_createTask_when_promptIsBlankInCreateRequest() {
|
||||
val entity = virtualEntityRepository.save(
|
||||
VirtualEntity(
|
||||
name = "Entity A",
|
||||
email = "entity-a@condado.com",
|
||||
jobTitle = "Ops"
|
||||
)
|
||||
)
|
||||
|
||||
val payload = """
|
||||
{
|
||||
"entityId": "${entity.id}",
|
||||
"name": "Morning Blast",
|
||||
"prompt": "",
|
||||
"scheduleCron": "0 8 * * 1-5",
|
||||
"emailLookback": "last_week"
|
||||
}
|
||||
""".trimIndent()
|
||||
|
||||
mockMvc.perform(
|
||||
post("/api/v1/tasks")
|
||||
.cookie(authCookie())
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(payload)
|
||||
)
|
||||
.andExpect(status().isCreated)
|
||||
.andExpect(jsonPath("$.entityId").value(entity.id.toString()))
|
||||
.andExpect(jsonPath("$.name").value("Morning Blast"))
|
||||
.andExpect(jsonPath("$.prompt").value(""))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user