From 72548b798a283635e75a9ad805d780949ee7e46c Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Mon, 10 Aug 2026 23:29:06 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20sourceUrl=20=D0=BE=D0=BF=D1=86=D0=B8?= =?UTF-8?q?=D0=BE=D0=BD=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20(=D0=B2?= =?UTF-8?q?=D0=BE=D1=80=D0=BA=D0=B5=D1=80=20=D1=81=D0=B0=D0=BC=20=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=B8=D1=82=20URL=20=D0=B8=D0=B7=20itemId)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../binom/mirror/api/dto/CreateMirrorRequest.kt | 3 +-- .../mirror/api/controller/MirrorControllerTest.kt | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/pw/binom/mirror/api/dto/CreateMirrorRequest.kt b/src/main/kotlin/pw/binom/mirror/api/dto/CreateMirrorRequest.kt index 940b070..93e7d74 100644 --- a/src/main/kotlin/pw/binom/mirror/api/dto/CreateMirrorRequest.kt +++ b/src/main/kotlin/pw/binom/mirror/api/dto/CreateMirrorRequest.kt @@ -7,7 +7,6 @@ import kotlinx.serialization.Serializable data class CreateMirrorRequest( @field:NotBlank(message = "itemId must not be blank") val itemId: String, - @field:NotBlank(message = "sourceUrl must not be blank") - val sourceUrl: String, + val sourceUrl: String = "", val sourceType: String = "jellyfin", ) diff --git a/src/test/kotlin/pw/binom/mirror/api/controller/MirrorControllerTest.kt b/src/test/kotlin/pw/binom/mirror/api/controller/MirrorControllerTest.kt index 8fc5e5d..b6f7c22 100644 --- a/src/test/kotlin/pw/binom/mirror/api/controller/MirrorControllerTest.kt +++ b/src/test/kotlin/pw/binom/mirror/api/controller/MirrorControllerTest.kt @@ -83,6 +83,21 @@ class MirrorControllerTest : AbstractIntegrationTest() { assertEquals(1, count) } + @Test + fun `POST mirror without sourceUrl creates a job`() { + mockMvc.perform( + post("/api/mirror") + .contentType(MediaType.APPLICATION_JSON) + .content("""{"itemId":"no-url-id"}"""), + ).andExpect(status().isCreated) + + val response = json.decodeFromString( + bodyOf(mockMvc.perform(get("/api/mirror/by-item/no-url-id")).andExpect(status().isOk).andReturn()), + ) + assertEquals("no-url-id", response.itemId) + assertEquals("new", response.status) + } + @Test fun `POST mirror returns 400 on blank itemId`() { postCreate("", "https://source.example/stream")