diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5286bde045..839a5095dd 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -230,7 +230,6 @@ dependencies { testImplementation(libs.test.truth) testImplementation(libs.test.turbine) testImplementation(projects.libraries.matrix.test) - testImplementation(libs.test.konsist) ksp(libs.showkase.processor) } diff --git a/settings.gradle.kts b/settings.gradle.kts index e1894c16d7..105befcd04 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -52,6 +52,7 @@ enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") rootProject.name = "ElementX" include(":app") include(":appnav") +include(":tests:konsist") include(":tests:uitests") include(":tests:testutils") include(":anvilannotations") diff --git a/tests/konsist/build.gradle.kts b/tests/konsist/build.gradle.kts new file mode 100644 index 0000000000..ca009bd89f --- /dev/null +++ b/tests/konsist/build.gradle.kts @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { + id("io.element.android-compose-library") +} + +android { + namespace = "io.element.android.tests.konsist" +} + +dependencies { + val composeBom = platform(libs.androidx.compose.bom) + testImplementation(composeBom) + testImplementation("androidx.compose.ui:ui-tooling-preview") + testImplementation(libs.test.junit) + testImplementation(libs.test.konsist) + testImplementation(libs.test.truth) + testImplementation(projects.libraries.architecture) + testImplementation(projects.libraries.designsystem) +} diff --git a/app/src/test/kotlin/io/element/android/app/KonsistArchitectureTest.kt b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistArchitectureTest.kt similarity index 98% rename from app/src/test/kotlin/io/element/android/app/KonsistArchitectureTest.kt rename to tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistArchitectureTest.kt index 17e9710653..f4bd7175fd 100644 --- a/app/src/test/kotlin/io/element/android/app/KonsistArchitectureTest.kt +++ b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistArchitectureTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.element.android.app +package io.element.android.tests.konsist import com.lemonappdev.konsist.api.Konsist import com.lemonappdev.konsist.api.ext.list.constructors diff --git a/app/src/test/kotlin/io/element/android/app/KonsistClassNameTest.kt b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistClassNameTest.kt similarity index 98% rename from app/src/test/kotlin/io/element/android/app/KonsistClassNameTest.kt rename to tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistClassNameTest.kt index d187816682..43e82b5dc2 100644 --- a/app/src/test/kotlin/io/element/android/app/KonsistClassNameTest.kt +++ b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistClassNameTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.element.android.app +package io.element.android.tests.konsist import androidx.compose.ui.tooling.preview.PreviewParameterProvider import com.bumble.appyx.core.node.Node diff --git a/app/src/test/kotlin/io/element/android/app/KonsistComposableTest.kt b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistComposableTest.kt similarity index 98% rename from app/src/test/kotlin/io/element/android/app/KonsistComposableTest.kt rename to tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistComposableTest.kt index c09f3c07a8..9eb23cfc61 100644 --- a/app/src/test/kotlin/io/element/android/app/KonsistComposableTest.kt +++ b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistComposableTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.element.android.app +package io.element.android.tests.konsist import androidx.compose.runtime.Composable import com.lemonappdev.konsist.api.KoModifier diff --git a/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistConfigTest.kt b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistConfigTest.kt new file mode 100644 index 0000000000..45247adc60 --- /dev/null +++ b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistConfigTest.kt @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.tests.konsist + +import com.google.common.truth.Truth.assertThat +import com.lemonappdev.konsist.api.Konsist +import org.junit.Test + +class KonsistConfigTest { + @Test + fun `assert that Konsist detect all the project classes`() { + assertThat( + Konsist + .scopeFromProject() + .classes() + .size + ) + .isGreaterThan(1_000) + } + + @Test + fun `assert that Konsist detect all the test classes`() { + assertThat( + Konsist + .scopeFromTest() + .classes() + .size + ) + .isGreaterThan(100) + } +} diff --git a/app/src/test/kotlin/io/element/android/app/KonsistFieldTest.kt b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistFieldTest.kt similarity index 96% rename from app/src/test/kotlin/io/element/android/app/KonsistFieldTest.kt rename to tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistFieldTest.kt index 13d5c9949b..867c1ad141 100644 --- a/app/src/test/kotlin/io/element/android/app/KonsistFieldTest.kt +++ b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistFieldTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.element.android.app +package io.element.android.tests.konsist import com.lemonappdev.konsist.api.Konsist import com.lemonappdev.konsist.api.ext.list.properties diff --git a/app/src/test/kotlin/io/element/android/app/KonsistPreviewTest.kt b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistPreviewTest.kt similarity index 97% rename from app/src/test/kotlin/io/element/android/app/KonsistPreviewTest.kt rename to tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistPreviewTest.kt index f9bcf620d0..40c73c8eaa 100644 --- a/app/src/test/kotlin/io/element/android/app/KonsistPreviewTest.kt +++ b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistPreviewTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.element.android.app +package io.element.android.tests.konsist import com.lemonappdev.konsist.api.Konsist import com.lemonappdev.konsist.api.ext.list.withAllAnnotationsOf diff --git a/app/src/test/kotlin/io/element/android/app/KonsistTestTest.kt b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistTestTest.kt similarity index 97% rename from app/src/test/kotlin/io/element/android/app/KonsistTestTest.kt rename to tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistTestTest.kt index 3ed6bd2026..32fd6dd624 100644 --- a/app/src/test/kotlin/io/element/android/app/KonsistTestTest.kt +++ b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistTestTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.element.android.app +package io.element.android.tests.konsist import com.lemonappdev.konsist.api.Konsist import com.lemonappdev.konsist.api.ext.list.modifierprovider.withoutOverrideModifier