Upload via GUI (7854 Dateien)

This commit is contained in:
2026-10-19 18:12:49 +00:00
parent 54fc07c9db
commit 9daab8d383
7 changed files with 256 additions and 0 deletions
@@ -42,6 +42,30 @@ class ApiDtoParsingTest {
assertEquals(false, t.permissions?.get("close_ticket"))
}
@Test
fun `ticket detail carries reply signatures and message request sends the choice`() {
val t = gson.fromJson(
"""{"id":5,"number":"T-1","subject":"S","department":{"id":2,"name":"Technik"},
"customFields":[{"label":"Titel","type":"text","value":"Bär"}],"replySignatures":{"default":"own","own":{"available":true,"text":"Grüße\nMax","hasImage":false},
"department":{"available":true,"name":"Technik","text":"Team","hasImage":true,"imageUrl":"https://x.de/l.png"}}}""",
TicketDetailDto::class.java,
)
val sigs = t.replySignatures!!
assertEquals("own", sigs.default)
assertTrue(sigs.own.available)
assertEquals("Grüße\nMax", sigs.own.text)
assertEquals("Technik", sigs.department.name)
assertTrue(sigs.department.hasImage)
assertEquals("https://x.de/l.png", sigs.department.imageUrl)
assertEquals("Bär", t.customFields.single().value)
// ältere Server liefern keine Signaturen: keine Auswahl
assertNull(gson.fromJson("""{"id":5,"number":"T-1"}""", TicketDetailDto::class.java).replySignatures)
// die Wahl geht als Feld "signature" an den Server
val body = gson.toJson(MessageRequest("T-1", "reply", "Hallo", "answered", "dept"))
assertTrue(body.contains("\"signature\":\"dept\""))
assertFalse(gson.toJson(MessageRequest("T-1", "note", "Notiz")).contains("signature"))
}
@Test
fun `activity response reports health`() {
val a = gson.fromJson("""{"newReplies":2,"newUnassigned":1,"serverTime":"2026-10-15 10:00:00","health":[{"level":"warning","code":"fetch_stale","message":"Abruf veraltet"}]}""", ActivityResponseDto::class.java)