From f9ba0819f2f1ff6ee3745819f8db99f05b4bb063 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 9 Oct 2025 15:36:06 +0200 Subject: [PATCH] Add Konsist test on Immutable annotation --- .../preview/AttachmentsPreviewEvents.kt | 3 --- .../impl/messagecomposer/MessageComposerEvents.kt | 3 +-- .../android/tests/konsist/KonsistImmutableTest.kt | 14 ++++++++++++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/attachments/preview/AttachmentsPreviewEvents.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/attachments/preview/AttachmentsPreviewEvents.kt index e679a43da7..9cdd52c97f 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/attachments/preview/AttachmentsPreviewEvents.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/attachments/preview/AttachmentsPreviewEvents.kt @@ -7,9 +7,6 @@ package io.element.android.features.messages.impl.attachments.preview -import androidx.compose.runtime.Immutable - -@Immutable sealed interface AttachmentsPreviewEvents { data object SendAttachment : AttachmentsPreviewEvents data object CancelAndDismiss : AttachmentsPreviewEvents diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerEvents.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerEvents.kt index bcbd575c73..0832303075 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerEvents.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerEvents.kt @@ -8,12 +8,10 @@ package io.element.android.features.messages.impl.messagecomposer import android.net.Uri -import androidx.compose.runtime.Immutable import io.element.android.libraries.textcomposer.mentions.ResolvedSuggestion import io.element.android.libraries.textcomposer.model.MessageComposerMode import io.element.android.libraries.textcomposer.model.Suggestion -@Immutable sealed interface MessageComposerEvents { data object ToggleFullScreenState : MessageComposerEvents data object SendMessage : MessageComposerEvents @@ -30,6 +28,7 @@ sealed interface MessageComposerEvents { data object Location : PickAttachmentSource data object Poll : PickAttachmentSource } + data class ToggleTextFormatting(val enabled: Boolean) : MessageComposerEvents data class Error(val error: Throwable) : MessageComposerEvents data class TypingNotice(val isTyping: Boolean) : MessageComposerEvents diff --git a/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistImmutableTest.kt b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistImmutableTest.kt index 0aa68503e5..c43a2ae741 100644 --- a/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistImmutableTest.kt +++ b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistImmutableTest.kt @@ -7,8 +7,12 @@ package io.element.android.tests.konsist +import androidx.compose.runtime.Immutable import com.lemonappdev.konsist.api.Konsist +import com.lemonappdev.konsist.api.ext.list.withAnnotationOf +import com.lemonappdev.konsist.api.ext.list.withNameEndingWith import com.lemonappdev.konsist.api.ext.list.withoutName +import com.lemonappdev.konsist.api.verify.assertEmpty import com.lemonappdev.konsist.api.verify.assertFalse import org.junit.Test @@ -60,4 +64,14 @@ class KonsistImmutableTest { it.text.contains(".toPersistentMap()") } } + + @Test + fun `Immutable annotation is not used on sealed interface for Presenter Events`() { + Konsist + .scopeFromProduction() + .interfaces() + .withNameEndingWith("Events") + .withAnnotationOf(Immutable::class) + .assertEmpty() + } }