android: expand quality coverage and smoke baseline docs
Some checks failed
CI / test (push) Failing after 2m19s
Some checks failed
CI / test (push) Failing after 2m19s
This commit is contained in:
@@ -150,3 +150,9 @@
|
||||
- `DELETE /api/v1/auth/sessions`
|
||||
- Added domain model and use-cases for listing/revoking sessions.
|
||||
- Added unit coverage for session DTO -> domain mapping in `NetworkAuthRepositoryTest`.
|
||||
|
||||
### Step 24 - Sprint P0 / 7) Quality pass
|
||||
- Added realtime parser unit coverage for `connect` event mapping.
|
||||
- Extended message DAO tests with attachment relation verification.
|
||||
- Added Android smoke and baseline document (`docs/android-smoke.md`) with test matrix and performance targets.
|
||||
- Updated Android checklist quality section with initial performance baseline completion.
|
||||
|
||||
@@ -12,6 +12,7 @@ import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import ru.daemonlord.messenger.data.chat.local.db.MessengerDatabase
|
||||
import ru.daemonlord.messenger.data.message.local.entity.MessageAttachmentEntity
|
||||
import ru.daemonlord.messenger.data.message.local.entity.MessageEntity
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
@@ -60,6 +61,28 @@ class MessageDaoTest {
|
||||
assertEquals(2L, chat20.first().message.id)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun observeRecentMessages_returnsAttachmentsRelation() = runTest {
|
||||
dao.upsertMessages(listOf(message(id = 10, chatId = 1, text = "with attachment")))
|
||||
dao.upsertAttachments(
|
||||
listOf(
|
||||
MessageAttachmentEntity(
|
||||
id = 501,
|
||||
messageId = 10,
|
||||
fileUrl = "https://s3.daemonlord.ru/test.jpg",
|
||||
fileType = "image/jpeg",
|
||||
fileSize = 1234,
|
||||
waveformPointsJson = null,
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
val items = dao.observeRecentMessages(chatId = 1).first()
|
||||
assertEquals(1, items.size)
|
||||
assertEquals(1, items.first().attachments.size)
|
||||
assertEquals("image/jpeg", items.first().attachments.first().fileType)
|
||||
}
|
||||
|
||||
private fun message(id: Long, chatId: Long, text: String): MessageEntity {
|
||||
return MessageEntity(
|
||||
id = id,
|
||||
|
||||
@@ -71,4 +71,18 @@ class RealtimeEventParserTest {
|
||||
assertEquals(100L, mapped.replyToMessageId)
|
||||
assertEquals("hi", mapped.text)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun parseConnect_returnsConnectedEvent() {
|
||||
val payload = """
|
||||
{
|
||||
"event": "connect",
|
||||
"payload": {"user_id": 1},
|
||||
"timestamp": "2026-03-09T12:00:00Z"
|
||||
}
|
||||
""".trimIndent()
|
||||
|
||||
val event = parser.parse(payload)
|
||||
assertTrue(event is RealtimeEvent.Connected)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user