test: add missing board detail repository edge coverage
This commit is contained in:
@@ -47,6 +47,26 @@ class BoardDetailRepositoryTest {
|
||||
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
|
||||
fun getBoardDetailFailsWhenNoWorkspacesAvailable() = runTest {
|
||||
val apiClient = FakeBoardDetailApiClient().apply {
|
||||
@@ -271,6 +291,23 @@ class BoardDetailRepositoryTest {
|
||||
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(
|
||||
sessionStore: InMemorySessionStore = InMemorySessionStore(baseUrl = "https://kan.bn/", workspaceId = "ws-1"),
|
||||
apiClient: FakeBoardDetailApiClient = FakeBoardDetailApiClient(),
|
||||
|
||||
Reference in New Issue
Block a user