test: add missing board detail repository edge coverage

This commit is contained in:
2026-03-16 00:36:06 -04:00
parent c56b9d042a
commit 2c40892906

View File

@@ -47,6 +47,26 @@ class BoardDetailRepositoryTest {
assertEquals("board-1", apiClient.lastBoardId) assertEquals("board-1", apiClient.lastBoardId)
} }
@Test
fun getBoardDetailReusesPersistedWorkspaceAfterFirstFetch() = runTest {
val apiClient = FakeBoardDetailApiClient().apply {
workspacesResult = BoardsApiResult.Success(listOf(WorkspaceSummary("ws-1", "Main")))
boardDetailResult = BoardsApiResult.Success(sampleBoardDetail())
}
val sessionStore = InMemorySessionStore(baseUrl = "https://kan.bn/")
val repository = createRepository(sessionStore = sessionStore, apiClient = apiClient)
val firstResult = repository.getBoardDetail("board-1")
apiClient.workspacesResult = BoardsApiResult.Failure("Should not be called")
val secondResult = repository.getBoardDetail("board-2")
assertTrue(firstResult is BoardsApiResult.Success<*>)
assertTrue(secondResult is BoardsApiResult.Success<*>)
assertEquals("ws-1", sessionStore.getWorkspaceId())
assertEquals(1, apiClient.listWorkspacesCalls)
assertEquals("board-2", apiClient.lastBoardId)
}
@Test @Test
fun getBoardDetailFailsWhenNoWorkspacesAvailable() = runTest { fun getBoardDetailFailsWhenNoWorkspacesAvailable() = runTest {
val apiClient = FakeBoardDetailApiClient().apply { val apiClient = FakeBoardDetailApiClient().apply {
@@ -271,6 +291,23 @@ class BoardDetailRepositoryTest {
assertEquals(listOf("card-2", "card-1"), apiClient.deletedCardIds) assertEquals(listOf("card-2", "card-1"), apiClient.deletedCardIds)
} }
@Test
fun deleteCardsReturnsUnknownErrorWhenAllFailAndFirstMessageIsBlank() = runTest {
val apiClient = FakeBoardDetailApiClient().apply {
deleteOutcomes = mapOf(
"card-2" to BoardsApiResult.Failure(" "),
"card-1" to BoardsApiResult.Failure("Delete failed second"),
)
}
val repository = createRepository(apiClient = apiClient)
val result = repository.deleteCards(cardIds = listOf(" card-2 ", "card-1", "card-2"))
assertTrue(result is CardBatchMutationResult.Failure)
assertEquals("Unknown error", (result as CardBatchMutationResult.Failure).message)
assertEquals(listOf("card-2", "card-1"), apiClient.deletedCardIds)
}
private fun createRepository( private fun createRepository(
sessionStore: InMemorySessionStore = InMemorySessionStore(baseUrl = "https://kan.bn/", workspaceId = "ws-1"), sessionStore: InMemorySessionStore = InMemorySessionStore(baseUrl = "https://kan.bn/", workspaceId = "ws-1"),
apiClient: FakeBoardDetailApiClient = FakeBoardDetailApiClient(), apiClient: FakeBoardDetailApiClient = FakeBoardDetailApiClient(),