fix(backend): allow blank prompt when creating tasks
This commit is contained in:
@@ -9,7 +9,7 @@ import java.util.UUID
|
|||||||
data class EntityTaskCreateDto(
|
data class EntityTaskCreateDto(
|
||||||
@field:NotNull val entityId: UUID,
|
@field:NotNull val entityId: UUID,
|
||||||
@field:NotBlank val name: String,
|
@field:NotBlank val name: String,
|
||||||
@field:NotBlank val prompt: String,
|
val prompt: String,
|
||||||
@field:NotBlank val scheduleCron: String,
|
@field:NotBlank val scheduleCron: String,
|
||||||
@field:NotBlank val emailLookback: String
|
@field:NotBlank val emailLookback: String
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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