From de7bb48fe20356d3a9e410a2a6c6e513bbdc7b57 Mon Sep 17 00:00:00 2001 From: Wally Hackenslacker Date: Mon, 16 Mar 2026 14:17:55 -0400 Subject: [PATCH] test: cover created id fallback keys for create endpoints --- ...ttpKanbnApiClientBoardDetailParsingTest.kt | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/app/src/test/java/space/hackenslacker/kanbn4droid/app/auth/HttpKanbnApiClientBoardDetailParsingTest.kt b/app/src/test/java/space/hackenslacker/kanbn4droid/app/auth/HttpKanbnApiClientBoardDetailParsingTest.kt index c702ff3..952b60c 100644 --- a/app/src/test/java/space/hackenslacker/kanbn4droid/app/auth/HttpKanbnApiClientBoardDetailParsingTest.kt +++ b/app/src/test/java/space/hackenslacker/kanbn4droid/app/auth/HttpKanbnApiClientBoardDetailParsingTest.kt @@ -51,6 +51,30 @@ class HttpKanbnApiClientBoardDetailParsingTest { } } + @Test + fun createList_parsesCreatedRefPublicId_fromPublicIdPublic_idAndIdKeys() = runTest { + TestServer().use { server -> + server.registerSequence( + path = "/api/v1/lists", + method = "POST", + responses = listOf( + 200 to """{"list":{"publicId":"list-from-publicId"}}""", + 200 to """{"list":{"public_id":"list-from-public_id"}}""", + 200 to """{"list":{"id":"list-from-id"}}""", + ), + ) + + val client = HttpKanbnApiClient() + val first = client.createList(server.baseUrl, "api", "board-1", "List A", 0) + val second = client.createList(server.baseUrl, "api", "board-1", "List B", 1) + val third = client.createList(server.baseUrl, "api", "board-1", "List C", 2) + + assertEquals("list-from-publicId", (first as BoardsApiResult.Success).value.publicId) + assertEquals("list-from-public_id", (second as BoardsApiResult.Success).value.publicId) + assertEquals("list-from-id", (third as BoardsApiResult.Success).value.publicId) + } + } + @Test fun createCard_serializesLocalDateAsUtcMidnight() = runTest { TestServer().use { server -> @@ -124,6 +148,30 @@ class HttpKanbnApiClientBoardDetailParsingTest { } } + @Test + fun createCard_parsesCreatedRefPublicId_fromPublicIdPublic_idAndIdKeys() = runTest { + TestServer().use { server -> + server.registerSequence( + path = "/api/v1/cards", + method = "POST", + responses = listOf( + 200 to """{"card":{"publicId":"card-from-publicId"}}""", + 200 to """{"card":{"public_id":"card-from-public_id"}}""", + 200 to """{"card":{"id":"card-from-id"}}""", + ), + ) + + val client = HttpKanbnApiClient() + val first = client.createCard(server.baseUrl, "api", "list-1", "Card A", null, null, emptyList()) + val second = client.createCard(server.baseUrl, "api", "list-1", "Card B", null, null, emptyList()) + val third = client.createCard(server.baseUrl, "api", "list-1", "Card C", null, null, emptyList()) + + assertEquals("card-from-publicId", (first as BoardsApiResult.Success).value.publicId) + assertEquals("card-from-public_id", (second as BoardsApiResult.Success).value.publicId) + assertEquals("card-from-id", (third as BoardsApiResult.Success).value.publicId) + } + } + @Test fun getBoardDetailParsesWrappedPayloadWithDueDateVariants() = runTest { TestServer().use { server ->